0
我需要根據每個列表中的對象的不同屬性(一個列表中的對象具有targetId屬性,我需要查找所有對象在哪裏targetId匹配第一個列表中的對象的Id,兩個列表中的對象都有一系列其他不同的屬性基於另一個列表中的對象屬性的排序列表
第一個列表將定義匹配對象的順序 - 實際順序無關緊要,因爲兩個列表的排序都是一樣的,下面的例子顯示了我的意思,第二個列表按照TargetId排序,以匹配第一個列表中的Id命令:
firstList = [{name: a, id:1}, {name: b, id:2}, {name: c, id:3}]
secondList = [{name: d, targetId: 2}, {name:e, targetId: 3}, {name: f, targetId: 1}]
sortedList = [{name: f, targetId: 1}, {name:d, targetId: 2}, {name: e, targetId: 3}]
我以爲像下面的東西可以工作,但我得到一個序列不包含元素錯誤,即使我知道每個對象在另一個列表中有一個匹配。已嘗試排序,沒有成功。
List<object> firstList; // objects have an Id
List<object> secondList; // objects have a TargetId property
List<object> sortedList = new List<object>(); // the new list to store matched objects
foreach (object o in firstList) {
sortedList.Add(secondList.Where(x => x.TargetId == o.Id).First()); // should only return one object, but First() just in case
}
foreach (object o in sortedList) {
//do something with the ordered list
}
感謝McGarnagle - 將會給它一展身手。由於我設置了測試列表以確保每個對象都匹配,所以認爲這個錯誤看起來很奇怪。 – Nathan