相关疑难解决方法(0)

在C#'for'循环中进行多次初始化

我怎样才能(如果可能的话)在C#for循环中初始化不同类型的多个变量?例:

for (MyClass i = 0, int j = 1; j<3; j++,i++)
Run Code Online (Sandbox Code Playgroud)

c# for-loop initialization

51
推荐指数
7
解决办法
6万
查看次数

C#中的元组和解包分配支持?

在Python中我可以写

def myMethod():
    #some work to find the row and col
    return (row, col)

row, col = myMethod()
mylist[row][col] # do work on this element
Run Code Online (Sandbox Code Playgroud)

但是在C#中,我发现自己在写作

int[] MyMethod()
{
    // some work to find row and col
    return new int[] { row, col }
}

int[] coords = MyMethod();
mylist[coords[0]][coords[1]] //do work on this element
Run Code Online (Sandbox Code Playgroud)

Pythonic方式显然更加清洁.有没有办法在C#中做到这一点?

c# tuples decomposition iterable-unpacking

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

如何使用空数组执行 Zip 操作

我正在尝试使用 C# 中的 Zip 操作,如此处所述。考虑这个代码片段:

int[] numbers = new[] { 1, 2, 3, 4 };
string[] words = new string[] { "one", "two", "three", "four" };

var numbersAndWords = numbers.Zip(words, (n, w) => new { Number = n, Word = w });
foreach (var nw in numbersAndWords)
{
    Console.WriteLine(nw.Number + nw.Word);
}
Run Code Online (Sandbox Code Playgroud)

System.ArgumentNullException如果其中一个组件出现这种情况,避免的正确方法是什么null
例如初始化words为null,像这样

int[] numbers = new[] { 1, 2, 3, 4 };
string[] words = null;

// The next line won't …
Run Code Online (Sandbox Code Playgroud)

c# linq arrays iteration loops

4
推荐指数
1
解决办法
1951
查看次数

使用foreach循环为c#中的两个列表创建列表值

List<String> listA = new List<string> { "A1", "A2" };
List<String> listB = new List<string> { "B1", "B2" };

for(int i = 0; i < listA.Count; i++)
{
    text += listA[i] + " and " + listB[i];
}
Run Code Online (Sandbox Code Playgroud)

如何使用foreach循环执行此操作?

c# foreach loops list

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

如何在.NET 2中同时迭代两个IEnumerables

编辑:我将此分为两个问题:

  • 迭代两个以较短的列表结尾的列表
  • 迭代多个列表,直到达到最长列表的最后一个元素

假设我有两个IEnumerable,包含许多元素.每个IEnumerable都有另一种类型T.

IEnumerable<int> ints=getManyInts();
IEnumerable<string> strings=getSomeStrings();
Run Code Online (Sandbox Code Playgroud)

我想要做的是迭代两个列表,并为每个步骤获取一个包含一个int和一个字符串的项目,直到达到最短列表的末尾.

for(Item<int,string> item in Foo.Combine<int,string>(ints, strings))
{
    int i=item.Val1;
    string s=item.Val2;
}
Run Code Online (Sandbox Code Playgroud)

您还可以在.NET 4中给我一个提示如何执行此操作.

.net ienumerable foreach .net-2.0

2
推荐指数
1
解决办法
794
查看次数

如何使用foreach迭代更大的列表

我有两个列表,list1的大小为5的元素,list2的大小为6的元素.我想使用foreach语句迭代更大的列表大小(例如,在这种情况下为6),但问题是我没有使用if条件来检查哪个列表更大.那么我该怎么做必要的任务呢.

if (list1.Count>list2.Count) // here I donot want to use if statement
{                            // do it in 1 statement only
    Size=list1.Count;
    foreach (var item in list1)
    {
        // do something
    }
}
else 
{
    Size = list2.Count;
    foreach (var item in list2)
    {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

c# foreach

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

在C#中使用ForEach语句迭代两个数组

我有2个阵列

string[] Namesvalues = Names.Split(',');
string[] TotalValues = Total.Split(',');
Run Code Online (Sandbox Code Playgroud)

上面两个数组都有完全相等的值.我想要做的是并行迭代上面两个数组,并希望从两个数组中逐个获取值.

谁能告诉我怎么办?

c#

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

如何在foreach循环中使用&&运算符同时迭代2个集合

我的wcf服务方法中有两个数据表.我想使用c#在列表中添加这些数据表的所有行.

我正在使用foreach循环来添加数据表的所有行.我想不出办法做这样的事,

foreach (DataRow dr in dt.Rows && DataRow dr1 in dt1.Rows)
{       
    lst.Add(
           new GetData{week = dr["Week_Number"].ToString()
           , Total_Created = dr["Total_Created"].ToString()
           , Total_Open = **dr1**["Total_Open"].ToString()}
           );
Run Code Online (Sandbox Code Playgroud)

}

c# wcf

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

嵌套循环以获得其中一个

我试图打印一次打印每个值:

像这样的东西.

让我假装对象letters包含"一,二......十"

然后有numbers一个包含"1,2,3,4 ... 10" 的对象

现在,如果我想要循环打印:

One 
1 
Two
2 
Three
3
Run Code Online (Sandbox Code Playgroud)

循环怎么样?

我试过这样的:

     foreach (var i in letters)
{
       Console.WriteLine(i);

     foreach(var a in numbers)
        {
            Console.WriteLine(a);
        }
}
Run Code Online (Sandbox Code Playgroud)

但这回归:

One 
1
2
Two
1
2
Three
1
2
Run Code Online (Sandbox Code Playgroud)

结果不是我想要的......

如何嵌套循环以使其按照我想要的方式打印?

c#

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