从C#字典中获取特定值的列表

时间:2016-01-14 09:02:18

标签: c# linq dictionary

假设我有一个带有Enum值的C#字典,如下所示:

public enum TileType
{
    Source,
    Horizontal,
    Vertical
}

Dictionary<Tile, TileType> tiles = new Dictionary<Tile, TileType>();

...之后我想从dict中检索所有键值对,例如value = TileType.Horizontal,但没有使用foreach循环。

如何在没有循环的情况下检索它们?我毫不怀疑LINQ是可能的。有人可以给我一个提示如何编写LINQ吗?

5 个答案:

答案 0 :(得分:4)

试试这个:

var horizontals = tiles.Where(kvp => kvp.Value == TileType.Horizontal).ToList()

答案 1 :(得分:0)

使用此:

tiles.Where(x => x.Value == TileType.Horizontal);

答案 2 :(得分:0)

就像这样:

var filteredTiles = tiles.Where(x=>x.Value == TileType.Horizontal);

答案 3 :(得分:0)

我会写这样的东西:

tiles.Where(t => t.value == TileType.Horizontal).ToArray();

答案 4 :(得分:0)

 foreach (var item in tiles.Where(t => t.Value == TileType.Horizontal))
 {
     Console.WriteLine(item.Key);
 }