我想知道这就是区别之间:差异表现C#中的foreach对LINQ
FOR:
string[] arrayOld = new string(){"This", "other", "aaa", ...};
string[] arrayNew = new string[arrayOld.lenght];
for(int i = i < arrayOld.lenght; i++){
arrayNew[i] = arrayOld[i];
}
FOREACH:
string[] arrayOld = new string(){"This", "other", "aaa", ...};
List<string> listNew = new List<string>();
foreach(string val in arrayOld){
listNew.add(val);
}
string[] arrayNew = listNew.toArray();
LINQ:
string[] arrayOld = new string(){"This", "other", "aaa", ...};
string[] arrayNew = (from val in arrayOld select val).toArray();
我不想复制一个数组...
的想法是在arrayOld构建从对象的新对象(即可以从不同的字符串,可以包含其他属性...)
我需要性能,所以...
¿什么是最好的选择,为什么?
你以前使用'StopWatch'? – 2011-04-19 17:11:01
此代码:'(从arrayOld select val中的val).toArray();'是人们为什么应该熟悉LINQ的非查询式窗体的一个很好的例子。换句话说:'arrayOld.ToArray();' – 2011-04-19 17:13:57
@ChaosPandion - 在OP防御中,他的代码被正确缩进。 StackOverflow中存在一个错误,它不会格式化编号/项目符号列表中的代码。 – 2011-04-19 17:34:05