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

本文关键字:列表 获取 字典 | 更新日期: 2023-09-27 18:30:31

假设我有一个 C# 字典,其中包含如下Enum值:

public enum TileType
{
    Source,
    Horizontal,
    Vertical
}
Dictionary<Tile, TileType> tiles = new Dictionary<Tile, TileType>();

。稍后我想从字典中检索所有键值对,例如value = TileType.Horizontal但不使用 foreach 循环。

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

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

试试这个:

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

使用这个:

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

它是这样的:

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

我会写这样的东西:

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