我想創建一個Lambda表達式,它基於給定的命名輸入從IDictionary創建對象數組。Lambda將IDictionary <字符串,對象>值轉化爲對象[]
這是我到目前爲止有:
var dic = new Dictionary<string, object>()
{
{"some", "value"},
{"dateTime", DateTime.Now},
{"someNum", 52},
{"other", "values"}
};
string[] inputArray = { "input", "dateTime", "someNume" };
var processedArray = inputArray.Select(i => dic.Where(d => d.Key == i).Select(kvp => kvp.Value)).ToArray();
這是不行的,它返回一個IEnumerable<object>
但所有的成員都KeyValuePair<string,object>
型只是,它的出現,沒有關鍵數據。
我認爲這有一些問題。我不認爲我應該使用dic.Select()
,因爲字典中的關鍵條目是唯一的,我顯然引用了錯誤的值或缺少一種方法來投射每個結果。
我不確定如何使用單個Lambda實現此目的。我需要制定出Lambda,因爲我打算將它用作編譯的Lambda。
有人可以告訴我如何做到最好?
@chomba,對不起,我似乎已經超越了你的建議編輯時,我仍然試圖改善它自己,沒有注意到你的建議。我注意到後將其合併。隨意提出其他改進建議。 – Alex
感謝您對我正在嘗試執行的操作非常有用的編輯:) – Guerrilla