C# 获取列表中所有相邻元素的元组

C# 获取列表中所有相邻元素的元组,c#,linq,C#,Linq,我想找到满足条件apair.Item1.Xpair.Item1.X

我想找到满足条件
a
它可以扩展到矢量2

var pairs = points
    .Take(points.Count - 1)
    .Zip(points.Skip(1), Tuple.Create)
    .Where(pair => pair.Item1.X < x && x <= pair.Item2.X)
var对=点
.Take(points.Count-1)
.Zip(points.Skip(1),Tuple.Create)

.Where(pair=>pair.Item1.X 它可以扩展到矢量2

var pairs = points
    .Take(points.Count - 1)
    .Zip(points.Skip(1), Tuple.Create)
    .Where(pair => pair.Item1.X < x && x <= pair.Item2.X)
var对=点
.Take(points.Count-1)
.Zip(points.Skip(1),Tuple.Create)

.Where(pair=>pair.Item1.X
var pairs = list_of_b.Select((pair,idx) => 
    new Tuple<Vector2,Vector2>(points[idx-1], points[idx]);

但这确实让人觉得很不雅观。

如果我没看错你的话,你会喜欢这部作品吗:

var pairs = list_of_b.Select((pair,idx) => 
    new Tuple<Vector2,Vector2>(points[idx-1], points[idx]);

但是这确实让人觉得很不雅观。

你的钥匙是什么?多个
Vector2
s不能实现“a”吗条件?我同意Dan的观点,这似乎不是你想要的真正的字典。也许是一个
列表
?@DanField我添加了一个示例,希望能澄清问题。你的示例输出不能用作字典,但可以用作元组列表或其他数据结构。啊,是的,我想
列表
可能会更好您的钥匙是什么?多个
Vector2
s不能满足“a”要求吗条件?我同意Dan的观点,这似乎不是你想要的真正的字典。也许是一个
列表
?@DanField我添加了一个示例,希望能澄清问题。你的示例输出不能用作字典,但可以用作元组列表或其他数据结构。啊,是的,我想
列表
可能会更好我认为是这样,但这似乎是一种奇怪的方式如果使用静态方法
Tuple.Create(,)
,类型参数可以省略(将被推断)。我认为是这样,但这似乎是一种奇怪的方式如果使用静态方法
Tuple.Create(,)
,类型参数可以省略(将被推断)。
var pairs = points
    .Take(points.Count - 1)
    .Zip(points.Skip(1), Tuple.Create)
    .Where(pair => pair.Item1.X < x && x <= pair.Item2.X)
var pairs = list_of_b.Select((pair,idx) => 
    new Tuple<Vector2,Vector2>(points[idx-1], points[idx]);
var ranges = Points
    .Select((p,i) => new { p, i })   // now i will always match the indexes in Points
    .Skip(1)
    .Where(p =>
        Points[p.i].X < X && X <= p.p.X)
    .Select((p) => new Tuple<Vector2, Vector2>(Points[p.i - 1], Points[p.i]));