我對 LINQ 很陌生
在下面的 Linq 中是我想要實作的目標:
我有兩節課
List<ClassA>——List<ClassB>
現在我想將 A 類的第一項映射到 b 類的第一項
ClassA.ForEach( a => {
// how to get the items from ClassB in the same order as it is in CLass b and assign it to Class A
});
uj5u.com熱心網友回復:
你在找郵編嗎?如果要列舉對(listA 中的第一項,listB 中的第 1 項;listA 中的第 2 項,listB 中的第 2 項 ... listA 中的第 n 項,listB 中的第 n 項):
// a and b are corresponding items from listA and listB
foreach (var (a, b) in listA.Zip(listB, (a, b) => (a, b))) {
//TODO: relevant code here; a is from listA, b is from listB
}
例如:
List<int> listA = new List<int>() {1, 2, 3};
List<string> listB = new List<string>() {"A", "B", "C"};
foreach (var (a, b) in listA.Zip(listB, (a, b) => (a, b)))
{
Console.WriteLine($"{a} : {b}");
}
輸出:
1 : A
2 : B
3 : C
請你自己動手
uj5u.com熱心網友回復:
我會嘗試這樣的事情:
List<int> listA = new List<int>();
List<int> listB = new List<int>();
listA.Add(1);
listB.AddRange(listA);
我知道這不是 LINQ,但我認為這種方法更簡單
uj5u.com熱心網友回復:
您可以Select將專案及其索引如下:
yourList.Select((x, i) => new {element = v, index = i})
然后,您可以申請First加入他們的index價值:
tempList = list2.Select((x, i) => new { somethingElse = x, index = i });
list1.Select((x, i) => new {
something = x,
somethingElse => tempList.First((item) => item.index == i) )
});
我手頭沒有 .NET 環境,也有很長時間沒有使用它,所以如果有錯別字,請告訴我。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/522816.html
標籤:C#列表林克
