我有一个词典
private readonly Dictionary<int, BinaryAssetExtensionDto> _identityMap;
我想做这样的事情:
if(_identityMap.Values.Contains(x => x.extension == extension))...
这是可能的,因为以前的代码不起作用。
现在我这样做:
var result = _identityMap.Values.ToList().Find(x => x.extension == extension);
if (result != null) return result;
答案 0 :(得分:7)
using System.Linq;
...
_identityMap.Values.Any(x=>x.extension==extension)
答案 1 :(得分:3)
return _identityMap.Values.FirstOrDefault(x => x.extension == extension);
如果不满足条件,则可能返回null。如果这不是您想要的,您可以提供默认值:
return _identityMap.Values.FirstOrDefault(x => x.extension == extension) ??
new BinaryAssetExtensionDto();
答案 2 :(得分:1)
我相信以下任何一种都适合你:
if (_identityMap.Values.Where(x => x.extension == extension).Count() > 0) { /*...*/ }
if (_identityMap.Values.FirstOrDefault(x => x.extension == extension) != null) { /*...*/ }
也可能有其他可能的替代方案