Select 仅此类项目包含 int 数组中的任何元素
Select only such items that contain any element in int array
假设我有一个 class:
public class Item
{
...
public IEnumerable<int> ClientsIds { get; set; }
}
以及以下代码:
List<Item> items = GetItems();
int[] ids = GetIds();
现在我只需要 select 包含 ids int 数组中任何元素的项目。我该怎么做?
好吧,一个简单的 Where
应该可以做到:
var filteredItems = items.Where(item =>
item.ClientIds.Any(ids.Contains)).ToList();
我认为这里不需要扩展方法,但您当然可以封装它:
public static IEnumerable<Item> FilterItems(this IEnumerable<Item> source, IEnumerable<int> filter)
{
return source.Where(item => item.ClientIds.Any(filter.Contains));
}
假设我有一个 class:
public class Item
{
...
public IEnumerable<int> ClientsIds { get; set; }
}
以及以下代码:
List<Item> items = GetItems();
int[] ids = GetIds();
现在我只需要 select 包含 ids int 数组中任何元素的项目。我该怎么做?
好吧,一个简单的 Where
应该可以做到:
var filteredItems = items.Where(item =>
item.ClientIds.Any(ids.Contains)).ToList();
我认为这里不需要扩展方法,但您当然可以封装它:
public static IEnumerable<Item> FilterItems(this IEnumerable<Item> source, IEnumerable<int> filter)
{
return source.Where(item => item.ClientIds.Any(filter.Contains));
}