我想GroupJoin在两个集合之间做一个a ,但是要基于除相等性之外的其他谓词。例如,如果我有一个包含项目的集合,每个项目都包含一个range属性,那么我想将每个项目与另一个具有某个属性且值在该范围内的集合中的项目相关联。可以使用GroupJoin或任何其他LINQ方法来完成此操作吗?

假设这些是您的数据类型:
public class Range
{
public int Start { get; set; }
public int End { get; set; }
}
public class Item
{
public int Number { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这个 Linq 表达式将为您提供您想要的内容(包括重叠范围)
var ranges = new Range[];
var items = new Item[];
// ...
var rangeGroups = ranges
.Select(r=> new {Range=r, Items=items.Where(i=> (r.Start <= i.Number) && (i.Number <= r.End))});
Run Code Online (Sandbox Code Playgroud)
rangeGroups每个项目都会有Range和。Items
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |