Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查听写是否正确<;字符串,对象>;存在于列表中<;字典<;字符串,对象>>;?_C#_Linq_List_Dictionary_.net 3.5 - Fatal编程技术网

C# 检查听写是否正确<;字符串,对象>;存在于列表中<;字典<;字符串,对象>>;?

C# 检查听写是否正确<;字符串,对象>;存在于列表中<;字典<;字符串,对象>>;?,c#,linq,list,dictionary,.net-3.5,C#,Linq,List,Dictionary,.net 3.5,我有一个列表,定义如下: List<Dictionary<string,object>>() 控件是一个列表,其中控件是具有一个属性的类名称项指一个控件 我曾考虑过做list.Contains(item.Name),但这显然不起作用。您使用了对字典的引用。字典是一种引用类型,因此列表将通过传递的引用检查字典是否包含在其中。要了解您拥有的任何字典中是否存在该键,可以执行以下操作: if(list.Any(dic => dic.ContainsKey(item.Nam

我有一个
列表
,定义如下:

List<Dictionary<string,object>>()
控件
是一个
列表
,其中
控件
是具有一个属性的类
名称
<代码>项指一个
控件


我曾考虑过做
list.Contains(item.Name)
,但这显然不起作用。

您使用了对字典的引用。字典是一种引用类型,因此列表将通过传递的引用检查字典是否包含在其中。

要了解您拥有的任何字典中是否存在该键,可以执行以下操作:

if(list.Any(dic => dic.ContainsKey(item.Name)))

那么,您想知道给定的键是否在列表中的任何词典中吗?或者您是否有另一个
字典
,并且需要知道它是否与列表中的字典具有完全相同的keyvaluepairs集,或者是什么?即使不显示
项的类型
也会使帮助变得更加困难。你可以使用
字典
,而不是
列表
@AndreCalil,或者只使用一个包含大量对象的
字典
,它的设计可以扩展到非常大的尺寸。我想你需要
字典
而不是
列表
@Xaisoft请将其编辑到问题中。他问的是如何做一些事情,而不是当他调用
列表
中的
包含时会发生什么。然而,由于问题的模糊性,他问的如何做还不是很清楚,但问题恰恰是如何检索字典的参考文献。如果他有它,他就不需要迭代列表。如果他要使用
包含
,他必须拥有它。@Renan那么也许他不应该使用
包含
。他从来没有说过他做过;那只是他试图解决的问题。在不知道OP到底想以什么结束这个问题的情况下,就无法回答。我看不到其他方法来检查列表中是否存在项,除非他想从字典继承并重载相等运算符。+1对于SO Q&a咨询服务,我猜。@AndreCalil Yeah。当我发表第一条评论时,我99%确信这是答案,但我想我应该利用教学时间帮助OP学习一些如何提问。此外,如果这是在1%的范围内,而不是这么简单,那么这可能是一个很有趣的问题。@Servy-有时当我们不理解这个问题时,很难提出正确的问题。@Xaisoft如果你甚至不知道你想得到什么,那么你需要在发布之前弄清楚这一点。一般来说,你会知道你最终需要什么,只是不知道如何到达那里。这通常可以通过简单的输入/输出示例轻松显示。如果您显示了一个示例列表(可能很小)以及一个或两个输入值和结果,除了说明之外,很明显您提供的是单个键,而不是集合。@Servy,谢谢您的解决方案奏效了。我会在我的问题上做得更好,我只是不确定我是在检查这个列表,它是包含整个Dictionary对象还是单个值,因为它是Dictionary对象的列表。希望这不会让人困惑。
if(list.Any(dic => dic.ContainsKey(item.Name)))