相关疑难解决方法(0)

C#或滑动窗口枚举器中的成对迭代

如果我有一个IEnumerable像:

string[] items = new string[] { "a", "b", "c", "d" };
Run Code Online (Sandbox Code Playgroud)

我想循环通过所有连续项目(大小为2的滑动窗口).这将是

("a","b"), ("b", "c"), ("c", "d")
Run Code Online (Sandbox Code Playgroud)

我的解决方案就是这样

    public static IEnumerable<Pair<T, T>> Pairs(IEnumerable<T> enumerable) {
        IEnumerator<T> e = enumerable.GetEnumerator(); e.MoveNext();
        T current = e.Current;
        while ( e.MoveNext() ) {
            T next = e.Current;
            yield return new Pair<T, T>(current, next);
            current = next;
        }
    }

 // used like this :
 foreach (Pair<String,String> pair in IterTools<String>.Pairs(items)) {
    System.Out.PrintLine("{0}, {1}", pair.First, pair.Second)
 }
Run Code Online (Sandbox Code Playgroud)

当我编写这段代码时,我想知道.NET框架中是否已经存在执行相同操作的函数,并且它不仅适用于对,而且适用于任何大小的元组.恕我直言应该有一个很好的方法来做这种滑动窗口操作.

我使用C#2.0,我可以想象使用C#3.0(w/LINQ)有更多(更好)的方法来做到这一点,但我主要对C#2.0解决方案感兴趣.不过,我也很欣赏C#3.0解决方案.

.net c# ienumerable iterator

48
推荐指数
6
解决办法
1万
查看次数

Linq从两个列表返回所有元素对?

给定列表l1 = {1, 2},l2 = {4, 5, 6 }我想获得一个包含元素的新列表:

rez = { {1, 4}, {1, 5}, {1, 6}, {2, 4}, {2, 5}, {2, 6} }
Run Code Online (Sandbox Code Playgroud)

建议?

.net c# linq

16
推荐指数
1
解决办法
6313
查看次数

成对分组项目

我有项目列表,例如:{ i1, i2, i3, i4, i5, i6, i7 }.
我想获得一个列表,其中每个项目都是源列表中的一对项目:{ {i1, i2}, {i3, i4}, {i5, i6}, {i7} }.
i7是一对中的单个项目,因为没有项目i8.
是否可以使用LINQ?

linq

9
推荐指数
1
解决办法
2232
查看次数

C#和LINQ,一次选择两个(连续)项目

在有序集(数组,列表)上使用LINQ,有没有办法选择或以其他方式使用两个连续项?我在想象语法:

list.SelectTwo((x, y) => ...)
Run Code Online (Sandbox Code Playgroud)

xy位于索引项ii + 1列表/阵列英寸 可能没有办法做到这一点,我接受这种可能性,但我至少想说我试图找到答案.

我知道我可以使用其他东西和LINQ来实现这一点.

先感谢您.

c# linq

8
推荐指数
2
解决办法
5283
查看次数

如何根据linq和c#列中的行之间的差异进行分组?

我想在行中的值之间的差异大于5时创建一个新组.

例:

int[] list = {5,10,15,40,45,50,70,75};
Run Code Online (Sandbox Code Playgroud)

应该给我3组:

1,[ 5,10,15 ]
2,[40,45,50]
3,[70,75]
Run Code Online (Sandbox Code Playgroud)

可以在这里使用Linq吗?

谢谢!

c# linq group-by

5
推荐指数
1
解决办法
172
查看次数

如何将String []转换为IDictionary <String,String>?

如何将a转换String[]IDictionary<String, String>

索引0,2,4,...处的值应为键,因此索引1,3,5,...处的值应为值.

例:

new[] { "^BI", "connectORCL", "^CR", "connectCR" }
Run Code Online (Sandbox Code Playgroud)

=>

new Dictionary<String, String> {{"^BI", "connectORCL"}, {"^CR", "connectCR"}};
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-objects c#-4.0

3
推荐指数
3
解决办法
483
查看次数

标签 统计

c# ×5

linq ×5

.net ×2

c#-4.0 ×1

group-by ×1

ienumerable ×1

iterator ×1

linq-to-objects ×1