我想查询已有的集合并从结果中创建新对象。我还希望将这些对象添加到现有的LinkedList
。
我现在所拥有的是
var results = fulldata.Where(x => x.ImportantData == ImportanceLevel.HIGH);
现在results
包含一组定义的数据对象,如下所示:
public class DataObject{
public int x;
public int y;
public int DataType;
}
我想用相同的语法(如Where()列表理解方法)编写以下代码的等价物:
var prunedResults = new LinkedList<KeyValuePair<int, int>>();
foreach(var res in results){
if(res.DataType == DataTypeSpecial){
prunedResults.Add(new KeyValuePair<int, int>(res.x, res.y));
}
}
我很陌生&#34;现代&#34; C#所以如果你也可以定义这里使用的术语,它会帮助我进一步回答谷歌。我的意思是,这似乎被称为LINQ,Where()调用使用lambda表达式,但我可能有点不对。
答案 0 :(得分:2)
var prunedResults = new LinkedList<KeyValuePair<int, int>>();
//do other stuff to prunedResults
prunedResults.AddRange(results.Where(x => x.DataType == DataTypeSpecial)
.Select(res=> new KeyValuePair<int, int>(res.x, res.y)));