gpt4 book ai didi

C#:当 "X"名称不在 "List1"中时,如何将 "list2"的值设置为零

转载 作者:太空宇宙 更新时间:2023-11-03 19:44:15 24 4
gpt4 key购买 nike

条件 1:在下面的代码中,有时 list2 为 null,因此我进行如下检查,list2 == null ? 0 : list2.Where.....

条件一:list1中的一些名字也不在list2中,为此我想设置Age = 0

如何同时满足这两个条件?

class Program
{
static void Main(string[] args)
{
var list1 = new List<List1> { new List1 { Name = "A1" }, new List1 { Name = "A2" } };

//sometime my "list2" is null as well
//var list2 = null;
var list2 = new List<List2> { new List2 { Name = "A1", Age = 10 } };

foreach (var a in list1)
{
var X = list2 == null ? 0 : list2.Where(x => x.Name == a.Name).FirstOrDefault().Age;
}
}
}

public class List1
{
public string Name { get; set; }
}


public class List2
{
public string Name { get; set; }
public int Age { get; set; }
}

最佳答案

您根本不需要 foreach 循环。

你可以这样解决:

var x = list2 == null ? 0 : 
list2.Where(x => list1.Any(e => x.Name == e.Name)).FirstOrDefault()?.Age ?? 0;

或者另一个变体是:

var x = list2 == null ? 0 : 
list2.FirstOrDefault(x => list1.Any(e => x.Name == e.Name))?.Age ?? 0;

关于C#:当 "X"名称不在 "List1"中时,如何将 "list2"的值设置为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48339171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com