Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.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#_Lambda - Fatal编程技术网

C# 从字符串数组中删除项

C# 从字符串数组中删除项,c#,lambda,C#,Lambda,我有两个字符串数组 string[] a = ... string[] b = ... 我想从a中删除也存在于b中的任何项,或者返回一个新数组,其中只包含仅存在于a中的项 例如,如果 a={"a", "b", "c"}; 以及 那么结果应该是 {"a", "c"} 是否有一个整洁的lambda表达式或Linq或我可以用来做这件事的东西 谢谢 萨钦我相信除了之外会做你想做的事。请记住,除了,与大多数LINQ扩展方法一样,不会修改现有集合。它将返回一个新集合 c=a.Except(b)另请参见

我有两个字符串数组

string[] a = ...
string[] b = ...
我想从a中删除也存在于b中的任何项,或者返回一个新数组,其中只包含仅存在于a中的项

例如,如果

a={"a", "b", "c"};
以及

那么结果应该是

{"a", "c"}
是否有一个整洁的lambda表达式或Linq或我可以用来做这件事的东西

谢谢


萨钦

我相信除了之外会做你想做的事。请记住,
除了
,与大多数LINQ扩展方法一样,不会修改现有集合。它将返回一个新集合


c=a.Except(b)

另请参见msdn页面中的Except:Correct,尽管其性能为O(NxM)即二次型。如果<代码> A < /代码>非常大,并且<>代码> b>代码>包含许多项,请考虑使用HasSeC:<代码> var Hasa=新哈希集(a);hashA.除(b)项外;返回a.ToArray()该函数的性能是线性的。如果
a
较小,则无需进行优化。为什么get无法将源类型“System.Collections.Generic.IEnumerable”转换为目标类型字符串[]?
除了返回
IEnumerable
之外。如果需要数组,则需要对该结果调用
ToArray()
{"a", "c"}