Goodmorning,C#拆分列表简化代码
我来自Python环境并转向c#。
我正在将一个更广泛的列表分割成更窄的列表和规定的长度。
有没有办法简化下面的代码? 我的猜测是它有点慢,并没有正确遵循C#常见的编码规则。
List<object> B = new List<object>();
for(int i = 0; i < SD_Data.Count/314; i++) {
var SD_Input = SD_Data.Skip(314 * i).Take(314 * i + 313);
B.Add(SD_Input);
}
A = B;
我发现这个有用的方式
public static IEnumerable<IEnumerable<T>> Chunk<T > (this IEnumerable<T> source, int chunksize)
{
while (source.Any())
{
yield return source.Take(chunksize);
source = source.Skip(chunksize);
}
}
var z = Chunk(x, 10);
但它确实提出了以下错误:
Error (CS1513): } expected (line 69)
Error (CS1518): Expected class, delegate, enum, interface, or struct (line 88)
Error (CS1518): Expected class, delegate, enum, interface, or struct (line 88)
Error (CS1518): Expected class, delegate, enum, interface, or struct (line 89)
Error (CS1518): Expected class, delegate, enum, interface, or struct (line 89)
Error (CS1518): Expected class, delegate, enum, interface, or struct (line 90)
Error (CS1518): Expected class, delegate, enum, interface, or struct (line 91)
Error (CS1518): Expected class, delegate, enum, interface, or struct (line 92)
Error (CS1518): Expected class, delegate, enum, interface, or struct (line 94)
Error (CS1001): Identifier expected (line 112)
Error (CS1001): Identifier expected (line 114)
Error (CS1022): Type or namespace definition, or end-of-file expected (line 115)
我的工作从McNeel犀牛软件的蝈蝈接口上。
在此先感谢!
在你的第二个代码中,'var z = Chunk(x,10);'在方法之外... – DVK