Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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#_List - Fatal编程技术网

C# 检查字符串列表中的任何项是否不在对象列表中

C# 检查字符串列表中的任何项是否不在对象列表中,c#,list,C#,List,假设我有这个字符串列表,我正在使用它创建一个对象列表 我的字符串列表中有171项,而我的对象列表中有170项。所以有一个没有通过,但我需要弄清楚是哪一个 幸运的是,可以在每个对象的每个名称中找到所有字符串。这意味着,例如: string nameObjOne 将等于: public class myObj { public string myName {get;set;} } 那么,如何检查我的第一个列表中的所有字符串是否都位于对象列表中,以便我可以找出哪一个不在其中?您可以使用LI

假设我有这个字符串列表,我正在使用它创建一个对象列表

我的字符串列表中有171项,而我的对象列表中有170项。所以有一个没有通过,但我需要弄清楚是哪一个

幸运的是,可以在每个对象的每个名称中找到所有字符串。这意味着,例如:

string nameObjOne
将等于:

public class myObj
{
    public string myName {get;set;}
}

那么,如何检查我的第一个列表中的所有字符串是否都位于对象列表中,以便我可以找出哪一个不在其中?

您可以使用LINQ选择
列表中的项目,但
列表中没有相应的项目:

var results = strings.Except(myObjects.Select(o => o.myName)).ToArray();
在这之后,您只需检查
结果的长度
数组就可以确定是否存在这样的项


这是O(n+m)解决方案,因为
除了
实现之外,它使用
HastSet

您可以使用LINQ选择
列表中的项目,但是
列表中没有相应的项目

var results = strings.Except(myObjects.Select(o => o.myName)).ToArray();
在这之后,您只需检查
结果的长度
数组就可以确定是否存在这样的项


这是O(n+m)解决方案,因为
除了
实现之外,它使用
HastSet

还需要对象,而不仅仅是
字符串
很好,它工作得很好,给了我想要的项目。坏东西!谢谢。任何显示除
以外的
使用
哈希集的参考资料?那太好了great@caerolus我相信真正的实现与Jon Skeet在他的eduLINQ系列中描述的非常相似:。这是最简单、最符合逻辑的解决方案。@caerolus:声明返回值是设置的差值。这意味着重复项将不被视为重要--
{1,1,2}
相当于
{1,2}
。还要注意的是,OPs还需要对象,而不仅仅是
字符串
。很好,这非常有效,并为我提供了所需的项目。坏东西!谢谢。任何显示除
以外的
使用
哈希集的参考资料?那太好了great@caerolus我相信真正的实现与Jon Skeet在他的eduLINQ系列中描述的非常相似:。这是最简单、最符合逻辑的解决方案。@caerolus:声明返回值是设置的差值。这意味着重复项将不被视为重要--
{1,1,2}
相当于
{1,2}