我有两个清单:
var list1 = new List<string> { "A", "A", "B", C" };
var list2 = new List<string> { "A", "B" };
Run Code Online (Sandbox Code Playgroud)
我想制作一个像这样的清单
var result = new[] { "A", "C" };
Run Code Online (Sandbox Code Playgroud)
如果列表是从中list1删除的所有元素list2我不认为有这样的Linq扩展方法,因为Except删除重复.
非linq的方法是:
var tempList = list1.ToList();
foreach(var item in list2)
{
tempList.Remove(item);
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一个我可能错过的Linq扩展方法.
编辑:
因为这里可能没有任何扩展方法.
public static class LinqExtensions
{
public static IEnumerable<T> RemoveRange<T>(this IEnumerable<T> source, IEnumerable<T> second)
{
var tempList = source.ToList();
foreach(var item in second)
{
tempList.Remove(item);
}
return tempList;
} …Run Code Online (Sandbox Code Playgroud)