Marc Howard
Marc Howard

Reputation: 425

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. I'm not entirely sure what operator to use?

Upvotes: 0

Views: 1195

Answers (2)

gzaxx
gzaxx

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

Ehsan
Ehsan

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

Related Questions