.net - 比较项目值的问题

标签 .net linq dictionary

我已经定义了我的类:

public class Host 
{
     public string Name;
}

然后是强类型字典:

Dictionary<string, Host> HostsTable;

然后我尝试比较一个值:

 if (HostsTable.Values.Where(s => s.Name == "myhostname") != null) { doSomething }

问题是,什么也没找到,即使我确定该项目在列表中。我做错了什么?

最佳答案

Where()返回另一个 IEnumerable<Host> ,因此您对 null 的测试不会检查是否存在匹配项。

我想这就是你想要做的:

if(HostsTable.Values.Any(s => s.Name == "myhostname")) { doSomething }

Any()返回 true如果有任何项目符合条件。

关于.net - 比较项目值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439236/

相关文章:

scala - 将元组列表转换为映射(并处理重复键?)

c# - 匹配两个列表

.net - 创建一个实现 ILiquidizable 的 DataRow 类

.net - Azure 网站中的缓存策略

mysql - 使用 FirstOrDefault 与 ToArray 的 LINQ 查询

c# - 如何使用 Entity Framework 为 CRUD 编写 LINQ 查询?

c# - 如何合并两个不同对象的列表?

c# - 在异步代码中调试异常

java - 遍历时将结果集值映射到另一个值

使用嵌套键的 Python 递归搜索 Dict