简体   繁体   English

LINQ查询以显示列表中是否存在ID

[英]LINQ Query to show if ID exists in list

foreach (var asset in fpt.CouttsPositionSection.ManagedStrategyAssets)
{
var result = FPTStaticDataManagedStrategyAssetlist.Where(e => e.Name == asset.StaticDataManagedStrategyAsset.Name);
if (result == null)
    {
      asset.StaticDataManagedStrategyAsset = FPTStaticDataManagedStrategyAssetlist[random.Next(0, FPTStaticDataManagedStrategyAssetlist.Count())];
    }
}

I want to check if asset.StaticDataManagedStrategyAsset.Name exists in FPTStaticDataManagedStrategyAssetlist . 我要检查FPTStaticDataManagedStrategyAssetlist中是否存在asset.StaticDataManagedStrategyAsset.Name I'm not entirely sure what operator to use? 我不确定要使用哪个运算符?

Use Any : 使用任何

if (!FPTStaticDataManagedStrategyAssetlist.Any(e => e.Name == asset.StaticDataManagedStrategyAsset.Name))
{
   //code
}

it will return true as soon as condition is met. 只要条件满足,它将返回true

Also for string comparison you can use string.Equals(string, string, StringComparision) if you want more control how to compare strings ( MSDN ). 同样,对于字符串比较string.Equals(string, string, StringComparision)如果希望更多控制如何比较字符串( MSDNstring.Equals(string, string, StringComparision)可以使用string.Equals(string, string, StringComparision) )。

You should change where to use Enumerable.Any . 您应该更改使用Enumerable.Any的位置

if(!FPTStaticDataManagedStrategyAssetlist.Any(e => e.Name == asset.StaticDataManagedStrategyAsset.Name))
{
    asset.StaticDataManagedStrategyAsset = FPTStaticDataManagedStrategyAssetlist[random.Next(0, FPTStaticDataManagedStrategyAssetlist.Count())];
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM