Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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# 另一个较大数组中的数组,包括使用Linq的副本_C# - Fatal编程技术网

C# 另一个较大数组中的数组,包括使用Linq的副本

C# 另一个较大数组中的数组,包括使用Linq的副本,c#,C#,示例:Array1.Intersect(Array2)只检查不同的元素 是否有一种优雅的方式使用linq来获得甚至包含重复项的结果?结果应该不区分大小写。谢谢。效率不高,但很清楚: var inboth = Array1.Where(Array2.Contains); 根据您不区分大小写的评论编辑: inboth = Array1.Where(s => Array2.Contains(s, StringComparer.OrdinalIgnoreCase)); 效率不高但清晰: var

示例:
Array1.Intersect(Array2)
只检查不同的元素


是否有一种优雅的方式使用linq来获得甚至包含重复项的结果?结果应该不区分大小写。谢谢。

效率不高,但很清楚:

var inboth = Array1.Where(Array2.Contains);
根据您不区分大小写的评论编辑

inboth = Array1.Where(s => Array2.Contains(s, StringComparer.OrdinalIgnoreCase));

效率不高但清晰:

var inboth = Array1.Where(Array2.Contains);
根据您不区分大小写的评论编辑

inboth = Array1.Where(s => Array2.Contains(s, StringComparer.OrdinalIgnoreCase));
在你的评论之后

var secondSet = new HashSet<string>(
    array2,
    StringComparer.CurrentCultureIgnoreCase);

var intersectSequence = array2.Where(secondSet.Contains);
var secondSet=新哈希集(
array2,
StringComparer.CurrentCultureInogoreCase);
var intersectSequence=array2.Where(secondSet.Contains);
在您的评论之后

var secondSet = new HashSet<string>(
    array2,
    StringComparer.CurrentCultureIgnoreCase);

var intersectSequence = array2.Where(secondSet.Contains);
var secondSet=新哈希集(
array2,
StringComparer.CurrentCultureInogoreCase);
var intersectSequence=array2.Where(secondSet.Contains);

你能用所需的输入和输出做一个例子吗?输入:string[]Arr1=新字符串[]{“a”、“a”、“b”、“y”};字符串[]Arr2=新字符串[]{“s”、“a”、“z”、“b”、“c”、“a”};输出{“a”、“a”、“b”}而不是{“a”、“b”}你能用所需的输入和输出做个例子吗?输入:string[]Arr1=新字符串[]{“a”、“a”、“b”、“y”};字符串[]Arr2=新字符串[]{“s”、“a”、“z”、“b”、“c”、“a”};输出{“a”、“a”、“b”}而不是{“a”、“b”}将
Array2
转换为
HashSet
可能会提高效率,如果
Array1
中有足够的元素,无论哪种方式都可以。谢谢Tim。但是我忘了提到结果还应该包含不区分大小写的元素。@user1191177:您甚至没有告诉我数组是
String[]
。但是,给我一个时间。你可以考虑使用当前的文化来序号,我知道序数会更快,但是在一些CultRs中,当你换挡的时候事情会变的更多(我想)。正如我改进后的答案所示。大多数人都想比较文化不可知论者,即使他想考虑当前的文化,据我所知,
Ordinal
通过,因为它的行为类似于
touper
(而不是危险的
ToLower
)。如果
Array1
中有足够的元素,则将
Array2
转换为
HashSet
可能会提高效率,无论是哪种方式。谢谢Tim。但是我忘了提到结果还应该包含不区分大小写的元素。@user1191177:您甚至没有告诉我数组是
String[]
。但是,给我一个时间。你可以考虑使用当前的文化来序号,我知道序数会更快,但是在一些CultRs中,当你换挡的时候事情会变的更多(我想)。正如我改进后的答案所示。大多数人都想比较文化不可知论者,即使他想考虑当前的文化,据我所知,
Ordinal
通过,因为它的行为类似于
touper
(而不是危险的
ToLower
)。