我想查詢我已有的集合並從結果中創建新對象。我也希望這些對象被添加到現有的LinkedList
。使用Enumerable.Where的結果創建對象並將它們添加到列表中
我現在所擁有的是
var results = fulldata.Where(x => x.ImportantData == ImportanceLevel.HIGH);
現在results
包含喜歡的一組定義的數據對象這樣的:
public class DataObject{
public int x;
public int y;
public int DataType;
}
我想用相同的語法來寫(如在哪裏()列表理解法)相當於下面的代碼:
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));
}
}
我是對於「現代」C#來說很新,所以如果你還可以定義這裏使用的術語,它會幫助我進一步得到google的答案。我的意思是,這似乎被稱爲LINQ和Where()調用使用lambda表達式,但我可能有點不對。
R·應自動建議轉換......你真的找對'Enumerable.Select'文檔(假設你已經發現'LinkedList'的構造函數採用枚舉你已經有了'Where'工作out).. –
@AlexeiLevenkov不是每個人都使用resharper :) – Rob
我一直在cpp工作多年,現在大部分的「on-the-side」項目都是python,所以我知道這個語言可以做這樣的事情,多年來我一直在瀏覽一些代碼,但我從來沒有自己寫過代碼 – Eric