2013-04-01 34 views
0

我試圖映射兩個列表來是什麼意思,但我正在逐漸ERR如何篩選值時,映射列表,使用C#

List<string> columnValue = new List<string>(); 
List<string> xpathValue = new List<string>(); 

var dic = columnValue.Zip(xpathValue, (k, v) => new { k, v}).Distinct().ToDictionary(x => x.k, x => x.v); 

「具有相同的鍵在...已經存在的對象」有誰知道如何解決這個問題..謝謝。

回答

0

Distinct查看整個對象,所以所有屬性必須相同才能將對象視爲相等。 Zip有兩個元素k但區別會出錯。

嘗試一個:

var dic = columnValue.Zip(xpathValue, (k, v) => new { k, v}) 
        .GroupBy(x => x.k) 
        .ToDictionary(g => g.Key, g => g.First().v); 

它由k分組元素,並添加到字典中的每個組內的第一元件的v。這解決了您的方法使用問題Distinct