LINQ:"包含"和Lambda查询

mar*_*ith 155 .net c# linq lambda list

List<BuildingStatus>有个叫buildingStatus.我想检查它是否包含其char代码(返回者GetCharCode())等于某个变量的状态v.Status.

有没有办法按照下面的(非编译)代码的方式做到这一点?

buildingStatus.Contains(item => item.GetCharValue() == v.Status)
Run Code Online (Sandbox Code Playgroud)

Rex*_*x M 296

使用Any()而不是Contains():

buildingStatus.Any(item => item.GetCharValue() == v.Status)
Run Code Online (Sandbox Code Playgroud)

  • 尼斯.我一直想知道为什么在地球上Linq不提供`Contains()`方法,然后我意识到它应该是`Any()`而不是.+1 (12认同)

flq*_*flq 37

Linq扩展方法Any可以为你工作......

buildingStatus.Any(item => item.GetCharValue() == v.Status)
Run Code Online (Sandbox Code Playgroud)


小智 5

以下是您可以如何使用Contains来实现您想要的:

buildingStatus.Select(item => item.GetCharValue()).Contains(v.Status) 这将返回一个布尔值。