嗨,有没有办法做这样的事情:
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>) …
我有4个字符串:
"h:/a/b/c"
"h:/a/b/d"
"h:/a/b/e"
"h:/a/c"
Run Code Online (Sandbox Code Playgroud)
我想找到这些字符串的公共前缀,即"h:/a".怎么找到?
通常我会用分隔符拆分字符串'/'并将其放在另一个列表中,依此类推.
有没有更好的方法呢?
我在解析文本文件时构建了两个数组.第一个包含列名,第二个包含当前行的值.我需要一次迭代两个列表来构建一个地图.现在我有以下内容:
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,它会变得非常毛茸茸(我偶尔也会这样做).有没有人有另一个更高级的成语?
我有一个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的答案更具可读性,所以我想我会暂时解决这个问题.请随时保持答案!