删除两个 List之间的重叠项目收藏品
我有两个 List 集合,我们称它们为 allFieldNames (完整集)和 exceptedFieldNames (部分集)。我需要派生第三个列表,该列表为我提供所有非排除的字段名称。换句话说,在排除的字段名称中找不到所有字段名称的子集列表。这是我当前的代码:
public List<string> ListFieldNames(List<string> allFieldNames, List<string> excludedFieldNames)
{
try
{
List<string> lst = new List<string>();
foreach (string s in allFieldNames)
{
if (!excludedFieldNames.Contains(s)) lst.Add(s);
}
return lst;
}
catch (Exception ex)
{
return null;
}
}
我知道必须有一种比手动迭代更有效的方法。请提出建议。
I have two collections of List, let's call them allFieldNames (complete set) and excludedFieldNames (partial set). I need to derive a third List that gives me all non-excluded field names. In other words, the subset list of allFieldNames NOT found in excludedFieldNames. Here is my current code:
public List<string> ListFieldNames(List<string> allFieldNames, List<string> excludedFieldNames)
{
try
{
List<string> lst = new List<string>();
foreach (string s in allFieldNames)
{
if (!excludedFieldNames.Contains(s)) lst.Add(s);
}
return lst;
}
catch (Exception ex)
{
return null;
}
}
I know there has to be a more efficient way than manual iteration. Suggestions please.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
例外
< /a> 方法:(如果您愿意返回
IEnumerable
而不是List
那么您可以省略最后的ToList
也可以调用。)You can use the
Except
method:(And if you're happy to return an
IEnumerable<string>
rather than aList<string>
then you could omit the finalToList
call as well.)