我有一个类封装了这样的数组:
public class Data
{
public double[] buffer = new double[10];
}
然后我有一组Data
个对象:
Data[] arrayOfData = new Data[10];
从所有double[][]
个对象的所有缓冲区中获取锯齿状数组arrayOfData
的最有效方法是什么?
答案 0 :(得分:0)
Linq将是一个选择
// transaltion: Fixed Assets
@XxxxxCaption(aaaa="Środek Trwały", bbb="Środki Trwałe", softwarename="SrodekTrwaly")
@Entity ST {
@Column(length=24)
@XxxxxCaption(xxLong="Numer środka Trwałego", xxxShort="Numer ST")
String No;
}
更新:添加了空检查,因为double[][] result = arrayOfData.Where(x => x != null).Select(x => x.buffer).ToArray();
可以是Data
但null
不是
答案 1 :(得分:0)
您可以在此处使用for
循环。它只有两行代码:
Data[] arrayOfData = new Data[10];
double[][] allBuffers = new double[arrayOfData.Length][];
for(int i = 0; i < arrayOfData.Length; i++) allBuffers[i] = arrayOfData[i].buffer;
或者如果您更喜欢使用LINQ:
double[][] allBuffers = arrayOfData.Select(a => a.buffer).ToArray();
这行代码的问题是LINQ为接口IEnumerable<T>
提供了一组扩展方法,因此它使用比foreach
慢得多的for
循环并被广泛使用只是遍历集合而不是数组。