Reputation: 425
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. I'm not entirely sure what operator to use?
Upvotes: 0
Views: 1195
Reputation: 17590
Use Any:
if (!FPTStaticDataManagedStrategyAssetlist.Any(e => e.Name == asset.StaticDataManagedStrategyAsset.Name))
{
//code
}
it will return true
as soon as condition is met.
Also for string comparison you can use string.Equals(string, string, StringComparision)
if you want more control how to compare strings (MSDN).
Upvotes: 3
Reputation: 32671
You should change where to use Enumerable.Any.
if(!FPTStaticDataManagedStrategyAssetlist.Any(e => e.Name == asset.StaticDataManagedStrategyAsset.Name))
{
asset.StaticDataManagedStrategyAsset = FPTStaticDataManagedStrategyAssetlist[random.Next(0, FPTStaticDataManagedStrategyAssetlist.Count())];
}
Upvotes: 3