c# - 使用linq将KeyValuePair List的键获取到int []数组

标签 c# arrays linq

有一个 List<KeyValuePair<int,string>>调用信息

1  Sur
2  Hn
3  uh
4  er
5  Sur

我想获取所有具有 Value 字符串 "Sur" (1,5) 的 ID然后将此结果转换为 int 数组。

我正在尝试类似的东西

int[] productsArray = Info.Select(kvp => kvp.Key ).Where(x => x.ToString () == "Sur").ToArray();

据我了解,x In 查询正在将键与“Sur”进行比较,这是不正确的。

如何从这样的查询中正确获取整数数组

最佳答案

尝试这样的事情

List<KeyValuePair<int,string>> infos;

int[] keys = infos.Where(kvp => kvp.Value == "Sur").Select(kvp => kvp.Key).ToArray();

关于c# - 使用linq将KeyValuePair List的键获取到int []数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23190829/

相关文章:

c - 在 C 中初始化和重新初始化全局字符串数组

javascript - javascript 中的 1 == [1] 是怎样的?

c# - 在 Observable 完成后做点什么?

c# - 使用 EF Core 编写动态 LINQ 查询以进行排序和投影

c# - Linq、OrderByDescending、First 和邪恶的 DefaultIfEmpty

c# - Microsoft .NET 命名空间大小写约定

c# - 在 C# 项目中将 C# 字符串转换为 MFC CString?

c# - WPF:将 ListBox ContextMenu 的命令参数绑定(bind)到 ListBox 的选定项

c# - SSDT SQL Server 调试不会命中 CLR 断点

c++ - Tic Tac Toe 覆盖数组用户输入