gpt4 book ai didi

c# - 将 2 个列表与一个具有空值的列表进行比较

转载 作者:行者123 更新时间:2023-11-30 15:19:15 24 4
gpt4 key购买 nike

我有课

public class User
{
public int id { get; set; }
public string code { get; set; }
}

我想找到具有特定代码值(value)的用户

List<User> users = new List<User>();

users.Add(new User() { id = 1, code="A"});
users.Add(new User() { id = 2, code = null });
users.Add(new User() { id = 3, code = "C" });
users.Add(new User() { id = 4, code = "C" });
users.Add(new User() { id = 5, code = "B" });

string[] possibleValues = new string[] { null, "A", "B" };

var result = users
.Where(u => possibleValues
.Any(l => l.Equals(u.code)))
.ToList();

我得到 NullReferenceException 因为 possibleValues 中有 null。我明白那个。有人可以建议更好的方法吗。

最佳答案

您正在比较 string,这就是为什么我建议将 l.Equals(...) 更改为 string.Equals(...) 知道如何处理 null:

  ...
// string.Equals(l, u.code):
// do l and u.code equal? i.e. are they both nulls
// or do they contain the equal strings
var result = users
.Where(u => possibleValues.Any(l => string.Equals(l, u.code)))
.ToList();

请注意,如果需要,您可以调整 string.Equals,例如string.Compare(l, u.code, StringComparison.OrdinalIgnoreCase)

关于c# - 将 2 个列表与一个具有空值的列表进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42241965/

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