mar*_*zzz 18 c# collections ilist
我有这个代码:
IList<string> stelle = stelleString.Split('-');
if (stelle.Contains("3"))
stelle.Add("8");
if (stelle.Contains("4"))
stelle.Add("6");
Run Code Online (Sandbox Code Playgroud)
但似乎IList在.Split()之后有一个固定的大小:System.NotSupportedException:Collection是固定大小的.
我该如何解决这个问题?
Guf*_*ffa 22
该Split方法返回一个数组,您无法调整数组的大小.
您可以List<string>使用ToList扩展方法从数组创建一个:
IList<string> stelle = stelleString.Split('-').ToList();
Run Code Online (Sandbox Code Playgroud)
或List<T>构造函数:
IList<string> stelle = new List<string>(stelleString.Split('-'));
Run Code Online (Sandbox Code Playgroud)
此外,您可能不希望将IList<T>接口用作变量的类型,而只是使用对象的实际类型:
string[] stelle = stelleString.Split('-');
Run Code Online (Sandbox Code Playgroud)
要么:
List<string> stelle = stelleString.Split('-').ToList();
Run Code Online (Sandbox Code Playgroud)
这将使您可以使用该类可以执行的操作,不仅限于IList<T>接口,也不支持不支持的方法.
Ode*_*ded 13
string.Split返回一个字符串数组.这确实有一个固定的大小.
您可以List<string>通过将结果传递给List<T>构造函数将其转换为a :
IList<string> stelle = new List<string>(stelleString.Split('-'));
Run Code Online (Sandbox Code Playgroud)
或者,如果可用,您可以使用LINQ ToList()运算符:
IList<string> stelle = stelleString.Split('-').ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23893 次 |
| 最近记录: |