我有一个定义的字典,如下所示:

Dictionary<int, Dictionary<string, object>> dict = new Dictionary<..>();

以及用于添加数据的示例代码:

dict.Add (X, new Dictionary<string, object> ());
dict [X].Add ("Car", CarObject);
dict [X].Add ("Seller", SellerObject);
dict [X].Add ("Key3", Z);

我想在内部字典中搜索,如果它包含一个对象,然后该对象包含以下键“ Car”的CarObject.Name = (wildcard)X1(wildcard) ,但我似乎无法掌握如何获取进入内部字典,然后使用LINQ进入对象以搜索值。

===============>>#1 票数:1

这将返回所有匹配的KeyValuePair<string, object>

var query = dict.SelectMany(d => d.Value)
                .Where(i => i.Key == "Key1"
                    && (
                          i.Value is CarObject
                          ? ((CarObject)i.Value).Name.Contains("X1")
                          : false
                       ));

===============>>#2 票数:0

请尝试以下操作:

var results = dict[X].Where(x => (x.Value is CarObject) && ((CarObject)x.Value).Name.Contains("X1"));

如果只想获取值而不是字典并打印值,则可以执行以下操作:

int X = 0, Z = 1;
dict[X].Add("Key1", CarObject);
dict[X].Add("Key2", SellerObject);
dict[X].Add("Key3", Z);

var results = dict[X].Where(x => (x.Value is CarObject) && ((CarObject)x.Value).Name.Contains("X1")).Select(x => x.Value);
foreach (var str in results)
   Console.WriteLine(str);

===============>>#3 票数:0

您可以尝试如下操作:

dict[X].Where(x => x.Value is CarObject && ((CarObject)x.Value).Name.Contains("X1"));

要么:

dict[X].Values.OfType<CarObject>().Any(x => x.Name.Contains("X1"))

  ask by Richard translate from so

未解决问题?本站智能推荐:

2回复

在字典中搜索字符串

我在创建GUI的地方有Form1.cs类,它还有一个具有以下功能的组合框: 因此,我检查用户是否已从ComboBox中选择了某些内容,然后在其他Class CTestRack.cs中调用了函数GetSessionName。 在这里,我想检查字典中是否存在String Select
3回复

在字典中搜索匹配列表

我需要得到: 首先使用f1项 与f2项第一和第二。 如何构造linq查询? 当A为int ,很简单 但是当它显示List<int> ,对我来说则更为复杂。
4回复

搜索字符串数组中包含的字典键

我有一个字符串列表,其中每个项目都是描述技能的自由文本,因此看起来有点像这样: 我想让用户为这些免费文本评分。 所以现在,我使用条件: 假设我想使用字典进行分数映射,例如: 在字典值和字符串列表之间交叉的一种好方法是什么? 我现在看到的是做一个嵌套循环: 但我
4回复

搜索字典的值

我有一个字典,其中包含带有description属性的Product值。 在textbox1_textchanged处理程序中,我想在字典中搜索description中包含特定文本的产品。 我试过这个: 此代码无效,因为我按下的第二个键值var值为空。 我找到的所有示例都是
4回复

字典搜索Linq

我们可以搜索字典 但它返回列表。 我希望linq应该返回true或false。 那么用linq搜索字典的正确代码是什么? 请指导。
2回复

如何从字典中的列表中搜索 >

如果我有一个字典<string, List<string>> 。 (例如<12345,List <“ABC”,“456”,“123”>>并且我想拉出键'12345',其中我在列表中的每个条目的字符串列表中有“456”。所以我的结果将是另一个列表。
3回复

C#,C#中的Linq搜索字典并使用key返回字符串

我将字典创建为 我想根据作为键传递的值来检索值 但是我看到它不会返回字符串并且我得到这样的 System.Linq.Enumerable+WhereSelectEnumerableIterator``2[System.Collections.Generic.KeyValueP
2回复

有没有办法在字典中搜索 通过比此代码中已有值更快的值来实现?

我有字典,在字典中我需要比现在更快地在List内搜索值。 列表总是排序的。 我需要找到一个包含特定int值的键,以便从我通过方法传入的索引处的键数组返回一个int值。 我尝试了stackoverflow的一些技巧:)而且,因为列表总是排序的,所以我添加了二进制搜索,但是它仍然不够快。
2回复

使用lambda搜索字典数组值

如何使用lambda表达式搜索字典值(该对象是对象)。 (使用下面的类) 假设有3个元素,每个元素有10个房子。 我如何基于元素查找属于客户的房屋 这是到目前为止,我不知道如何缩小房屋数量 这不起作用-> houseDict[0].SelectMany(s =
3回复

如何对多键字典进行部分搜索

我创建了一个多键字典,因为(registrantsFields是可枚举的类型) 我用ContainsKey搜索字典为 到目前为止,它工作正常。 但是我只想用2个键来搜索字典,即,对于某些registrantId和fieldId,什么字典包含什么,但具有任何dataId。