gpt4 book ai didi

c# - LinQ ofType in 值

转载 作者:行者123 更新时间:2023-11-30 13:12:49 25 4
gpt4 key购买 nike

我有以下词典:

public Dictionary<string,object> Items;

现在我需要获取字典项的 来自特定类型的所有项。 (例如“int”)

var intValues = Items.OfType<KeyValuePair<string,int>>根本行不通。

没有 LinQ 的代码会是这样的:

var intValues=new Dictionary<string,int>()
foreach (var oldVal in Items) {
if (oldVal.Value is int) {
intValues.add(oldVal.Key, oldVal.Value);
}
}

(更新)我的示例应该展示基本思想。但如果可能的话,我会避免创建一个新的字典。

最佳答案

直接翻译你的foreach在 LINQ 中将是以下内容:

var intValues = Items.Where(item => item.Value is int)
.ToDictionary(item => item.Key, item => (int)item.Value);

所以基本上,您首先过滤 item.Value 所在的位置是一个 int ,然后使用 ToDictionary 从中创建字典您将这些值转换为 int 的位置确保生成的字典是 Dictionary<string, int> .由于我们已经过滤了非整数,因此这种类型转换总是会成功。

关于c# - LinQ ofType in 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43611442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com