Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_Algorithm_Performance_Generic List - Fatal编程技术网

比较两个通用列表的最快方法C#

比较两个通用列表的最快方法C#,c#,list,algorithm,performance,generic-list,C#,List,Algorithm,Performance,Generic List,我需要知道比较两个列表的最佳方法,例如: var list1 = new List<string> { "ITEM", "FROM", "TO", "X kg/cm2g", "Y kg/cm2g" }; var list2 = new List<string> { "ITEM", "TO", "FROM", &q

我需要知道比较两个列表的最佳方法,例如:

var list1 = new List<string> { "ITEM", "FROM", "TO", "X kg/cm2g", "Y kg/cm2g" };

var list2 = new List<string> { "ITEM", "TO", "FROM", "Y", "X" };
var list1=新列表{“项”、“从”、“到”、“X kg/cm2g”、“Y kg/cm2g”};
var list2=新列表{“项”、“到”、“从”、“Y”、“X”};
然后,列表2中的项目存在于列表1中,在本例中是正确的,因为我只需要知道列表1中的项目是否包含列表2

比如说

“项”
存在

“到”
存在

“从”
存在

Y
的存在是因为“Ykg/cm2g”


X
之所以存在,是因为“Xkg/cm2g”

您可以将列表1中的项目连接到一个大字符串,并在其中循环检查它是否包含列表2中的项目。

听起来您好像在尝试验证
列表2中的所有项目是否包含在
列表1
中的至少一个项目中。如果是这样的话,这应该可以做到:

bool list1ContainsList2Items = list2.All(l2 => list1.Any(l1 => l1.Contains(l2)));

既然OP要求的是“最快的”,你能评论一下你的解决方案的时间复杂性吗?通过简单的连接(“LOUIS”、“TAN”)和(“LOU”、“is”、“STAN”)可以产生有趣的结果。你打算划界吗?如何处理包含分隔符的字符串?您好,欢迎使用StackOverflow。请提供您迄今为止尝试过的代码示例。请用您自己解决此问题的最佳尝试更新您的问题,并解释为什么它不符合您的性能/速度标准。以及,
通用
部分在哪里出现;您的示例似乎使用了两个
列表
(我假设-我看不到您的代码)?此外,请更准确地指定规则。例如,如果列表1包含
“Steve Young”
,而列表2包含
“Y”
,则它是否算作匹配项?如果是另一种方式呢?你真的对最快的方式感兴趣吗?或者只是一个解决方案。。。如果你对“最快的方法”感兴趣,你需要解释它是如何使用的,列表的变化频率,并将其与你知道的实际有效的方法进行比较。。。也就是说,和什么相比最快?手指和脚趾?你能解释一下为什么这是最快的吗?@develiminate因为它只花了不到一分钟的时间来编写,而且比op的当前解决方案要快,后者什么都不是。:)如果你想花时间在这个问题的优化解决方案上,请便!