list vclAsset<FullAsset>
list callsigns<string>

foreach(FullAsset fa in vclAsset)
{
    if (callsigns.contains(fa.asset.callsign))
    {
         //do something
    }

}


有没有更优雅的方式来执行上述操作? FullAsset对象包含一个Asset对象,该对象又具有一个字符串“ Callsign”。每个呼号将是唯一的,因此我的列表呼号将仅具有每个字符串之一,并且没有两个FullAsset对象将共享Asset.callsign变量。

简而言之,我想提取所有具有特定呼号的FullAsset,但是使用foreach似乎很笨拙(假设可以包含在所述列表中的FullAsset的数量可能没有上限)。

最佳答案

您可以使用lambda表达式,如下所示:

foreach(FullAsset fa in vclAsset.Where(a => callsigns.contains(a.asset.callsign))
{
    // do something
}

关于c# - 比使用foreach更好的搜索列表方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1825831/

10-13 03:16