改成如下试试:
ReadOnlyCollection<string> pinyin = new ReadOnlyCollection<string>(chineseChar.Pinyins);
说明:需要通过ReadOnlyCollection的构造函数来给它进行初始化。
测试代码如下:
//--------------------------------------------------------
/// (1) 将List<string> 赋值给 ReadOnlyCollection<string>
List<string> dinosaursList = new List<string>();
dinosaursList.Add("Tyrannosaurus");
dinosaursList.Add("Amargasaurus");
dinosaursList.Add("Deinonychus");
dinosaursList.Add("Compsognathus");
ReadOnlyCollection<string> readOnlyDinosaurs =
new ReadOnlyCollection<string>(dinosaursList);
Console.WriteLine();
foreach (string dinosaur in readOnlyDinosaurs)
{
Console.WriteLine(dinosaur);
}
//--------------------------------------------------------
/// (2) 将string[] 赋值给 ReadOnlyCollection<string>
string[] dinosaursArray = dinosaursList.ToArray();
ReadOnlyCollection<string> readOnlyDinosaursTwo =
new ReadOnlyCollection<string>(dinosaursArray);
Console.WriteLine();
foreach (string dinosaur in readOnlyDinosaursTwo)
{
Console.WriteLine(dinosaur);
}
bug没了,但是还是显示不出来结果
你定义的这个ChineseChar类,你写的是string[]数组类型吧!需要改成ReadOnlyCollection类型,一个方法是去ChineseChar类改,一个方法如下:
ReadOnlyCollection pinyin = new ReadOnlyCollection(chineseChar.Pinyins);
类型错了,改这个ReadOnlyCollection pinyin = new ReadOnlyCollection(chineseChar.Pinyins);
朋友你的报错解决了没
创建ChineseChar时你传入的是字节,但是声明ReadOnlyCollection数组时却是声明string类型,类型不匹配,你把39行代码<string>改成<char>试试,或者将38行代码改成字符串类型