相关疑难解决方法(0)

使用foreach同时迭代多个列表(语法糖)

嗨,有没有办法做这样的事情:

for (int i = 0; i < Math.Min(a.Count, b.Count); i++)
{
    // Do stuff
    //a[i]
    //b[i]
}
Run Code Online (Sandbox Code Playgroud)

与Foreach?

因为写一些类似的东西会很好

foreach(var item1 in list1 and var item2 in list2 /* ....*/)
{
   item1.use(item2);
}
Run Code Online (Sandbox Code Playgroud)

编辑

好对不起我对某些人不够清楚,所以希望能有更好的解释

List<classA> listA = fillListA();
List<classB> listB = fillListB();
//here could be infinity many lists of sometimes diffrent T types
Run Code Online (Sandbox Code Playgroud)

现在我想执行某种ForEach因为我不喜欢用for循环做它应该简单明了很好像

foreach(var item1 in list1 and var item2 in list2 /* and ...*/)
{
    item1.use(item2);
}
Run Code Online (Sandbox Code Playgroud)

AFAIK我不能修改这样一个keay词类的东西,所以我认为确定构建像Parallel.ForEach那样的迭代器,ForEach<TSource>(IEnumerable<TSource>, Action<TSource>) …

.net c#

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

查找字符串的公共前缀

我有4个字符串:

"h:/a/b/c"
"h:/a/b/d"
"h:/a/b/e"
"h:/a/c"
Run Code Online (Sandbox Code Playgroud)

我想找到这些字符串的公共前缀,即"h:/a".怎么找到?

通常我会用分隔符拆分字符串'/'并将其放在另一个列表中,依此类推.
有没有更好的方法呢?

c# string pattern-matching

26
推荐指数
5
解决办法
2万
查看次数

如何一次迭代两个数组?

我在解析文本文件时构建了两个数组.第一个包含列名,第二个包含当前行的值.我需要一次迭代两个列表来构建一个地图.现在我有以下内容:

var currentValues = currentRow.Split(separatorChar);
var valueEnumerator = currentValues.GetEnumerator();

foreach (String column in columnList)
{
    valueEnumerator.MoveNext();
    valueMap.Add(column, (String)valueEnumerator.Current);
}
Run Code Online (Sandbox Code Playgroud)

这很好用,但它并不能完全满足我的优雅感,如果阵列的数量大于2,它会变得非常毛茸茸(我偶尔也会这样做).有没有人有另一个更高级的成语?

c# iterator enumerator

14
推荐指数
2
解决办法
8651
查看次数

来自IEnumerable <IEnumerable <T >>的一个属性的IEnumerable,其中T有两个属性

我有一个IEnumerable<IEnumerable<CustomObject>>其中s CustomObject具有x(其用于像的键(在这种情况下1,2,3))和y值.一些假装数据:

{
  { {1, 2}, {2, 4}, {3, 6}, {4, 8} }, 
  { {1, 2}, {2, 0}, {3, 0}, {4,-2} },
  { {1, 2}, {2, 2}, {3, 0}, {4, 0} }
}
Run Code Online (Sandbox Code Playgroud)

我可以检索以下内容的最佳方法是什么IEnumerable<CustomObject>:

{ {1, 2}, {2, 2}, {3, 2}, {4, 2} }

y每个元素的平均值.

性能需要合理,因此不能使用.ToList()或类似.我一直在用LINQ尝试各种各样的东西,但无济于事.

更新

@Bort,@ Rawling,我已经测试了你的答案,@ Rawling的速度非常快.然而,@ Bort的答案更具可读性,所以我想我会暂时解决这个问题.请随时保持答案!

c# .net-3.5

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

标签 统计

c# ×4

.net ×1

.net-3.5 ×1

enumerator ×1

iterator ×1

pattern-matching ×1

string ×1