我有这些清单:
var list1 = new List<string>
{
"BOM_Add",
"BOM_Edit",
"BOM_Delete",
"Paper_Add",
"Paper_Edit",
"Paper_Delete"
};
var list2 = new List<string> {"BOM", "Paper_Add"};
Run Code Online (Sandbox Code Playgroud)
我想基于部分匹配创建常见项目的第三个列表.因此,第三个列表应包含:
"BOM_Add",
"BOM_Edit",
"BOM_Delete",
"Paper_Add"
Run Code Online (Sandbox Code Playgroud)
因为第二个列表包含"BOM".
如果第二个列表包含"_Edit",那么我希望第三个列表具有
"BOM_Edit",
"Paper_Edit"
Run Code Online (Sandbox Code Playgroud)
.Intersect()如果我在第二个列表中拼出每个项目(例如"BOM_Add"),我知道如何做到这一点,但我需要它比这更灵活.
这可以在不重复第一个列表中的每个项目的情况下完成吗?这些列表可能会很长,如果可以,我宁愿避免这样做.
您可以使用LINQ
var result = list1.Where(r => list2.Any(t => r.Contains(t)))
.ToList();
Run Code Online (Sandbox Code Playgroud)
输出:
foreach (var item in result)
{
Console.WriteLine(item);
}
Run Code Online (Sandbox Code Playgroud)
输出将是:
BOM_Add
BOM_Edit
BOM_Delete
Paper_Add
Run Code Online (Sandbox Code Playgroud)
这可以在不重复第一个列表中的每个项目的情况下完成吗?
您必须通过循环或使用LINQ (内部迭代)进行迭代
| 归档时间: |
|
| 查看次数: |
1790 次 |
| 最近记录: |