簡體   English   中英

在c#中操作兩個對象列表

[英]Manipulate two list of objects in c#

我有一個帶有 ID 屬性和 Status 屬性的 objectA。 我有一個 ListA,它是 objectA 的集合。 我還有一個帶有 ID 屬性和 Status 屬性的 objectB。 我有一個 ListB,它是 objectB 的集合。

我需要根據 ID 將 listA 集合與 listB 集合相匹配,如果匹配,則將狀態從 ListB 更新為 ListA。

沒有 foreach 循環的最佳方法是什么?

謝謝您的幫助。

您可以為此使用LINQ

var objectsForUpdate = (from a in listA
                        join b in listB
                          on a.Id equals b.Id
                        select new { a, b });
foreach (var obj in objectsForUpdate)
{
    obj.a.Status = obj.b.Status;
}

請注意,如果不使用foreach語句,這是無法實現的。

我有一個類似的場景。 我有cartProductsproductsPurchasePrices

我用 linq 加入了兩個集合:

//join currentCart...
var p = currentCart.Rows.Join(
        productsPurchasePrices,              //... with productsPurchasePrices
        row => row.ProductCode,              //first collection key
        purchasePrice => purchasePrice.Key,  //second collection key
        (row, purchasePrice) => new
        {
            productCode = row.ProductCode,
            productMargin = purchasePrice.ProductMargin
        });

參考:

http://msdn.microsoft.com/en-us/library/bb397941.aspx

http://code.msdn.microsoft.com/LINQ-Join-Operators-dabef4e9

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM