简体   繁体   English

使用 c# linq 从另一个列表更新列表中的变量

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

I want to copy data from one list to another list.我想将数据从一个列表复制到另一个列表。 While copying to the new list, i want to assign new values also.在复制到新列表时,我也想分配新值。 Can someone please assist quickly.有人可以请尽快提供帮助。 I want to achieve something like below,我想实现以下目标,

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) Just returns the same item again. Select(p => p)只是再次返回相同的项目。

I think instead of this: Select(p => p).SelectMany(o => o.SplitFromCsv())我认为不是这样: Select(p => p).SelectMany(o => o.SplitFromCsv())
You need this: Select(p => (p, csv: o.SplitFromCsv()) )你需要这个: Select(p => (p, csv: o.SplitFromCsv()) )

Now you can use that tuple in the final Select :现在您可以在最终的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