簡體   English   中英

使用 c# linq 從另一個列表更新列表中的變量

[英]Update a variable in list from another list using c# linq

我想將數據從一個列表復制到另一個列表。 在復制到新列表時,我也想分配新值。 有人可以請盡快提供幫助。 我想實現以下目標,

public HashSet<string> MobileNumber { get; set; }        
var contactViewData = MobileNumber.Select(p => p).SelectMany(o => o.SplitFromCsv()).Select(x => new ContactViewMap()
{
     ContactId = Guid.NewGuid().ToString(),
     NewMobileNumber = x,
     OldMobileNumber = p
}).ToList();

public class ContactViewMap
{
    public string ContactId { get; set; }
    public string NewMobileNumber { get; set; }
    public string OldMobileNumber { get; set; }
}


public static IEnumerable<string> SplitFromCsv(this string csv)
            => csv.Split(',', StringSplitOptions.None);

Input:
{
  "MobileNumber": [
    "+9112352",
    "+9112353"
  ]
}

Select(p => p)只是再次返回相同的項目。

我認為不是這樣: Select(p => p).SelectMany(o => o.SplitFromCsv())
你需要這個: Select(p => (p, csv: o.SplitFromCsv()) )

現在您可以在最終的Select中使用該元組:

.Select(x => new ContactViewMap()
{
     ContactId = Guid.NewGuid().ToString(),
     NewMobileNumber = x.csv,
     OldMobileNumber = x.p
})

暫無
暫無

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

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