小编Ame*_*mes的帖子

C#将List <int>转换为List <double>

我有一个List<int>,我想将其转换为List<double>.有没有办法做到这一点,除了循环List<int>并添加到这样的新List<double>:

List<int> lstInt = new List<int>(new int[] {1,2,3});
List<double> lstDouble = new List<double>(lstInt.Count);//Either Count or Length, I don't remember

for (int i = 0; i < lstInt.Count; i++)
{
    lstDouble.Add(Convert.ToDouble(lstInt[0]));
}
Run Code Online (Sandbox Code Playgroud)

这有什么奇特的方法吗?我正在使用C#4.0,所以答案可能会利用新的语言功能.

c# generics

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

C#:N For循环

我如何将此代码转换为n嵌套for循环:

            int num = 4;

            for (int i = 0; i <= num; i++)
            {
                for (int j = 0; j + i <= num; j++)
                {
                    for (int k = 0; i + j + k <= num; k++)
                    {
                        for (int l = 0; i + j + k + l <= num; l++)
                        {
                            Console.WriteLine(i + " " + j + " " + k + " " + l);
                        }
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

因此,如果num为2,则只有2个for循环; 我和j.

这不是家庭作业,我希望迭代地做.每个Console.WriteLine()都需要像元素一样存储在一起. …

c#

13
推荐指数
2
解决办法
2307
查看次数

Python到C#代码解释

我的最终目标是将python中的以下代码转换为C#,但我想通过学习python语法来实现自己.我知道代码是递归的.

该代码产生具有k个变量的n次多项式.更具体地说,每个变量的指数列表.

def multichoose(n,k):
    if k < 0 or n < 0: return "Error"
    if not k: return [[0]*n]
    if not n: return []
    if n == 1: return [[k]]
    return [[0]+val for val in multichoose(n-1,k)] + \
        [[val[0]+1]+val[1:] for val in multichoose(n,k-1)]
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的转换:

public double[] MultiChoose(int n, int k)
{
    if (k < 0 || n < 0)
    {
         throw new Exception();
    }

   if (k == 0)
   {
       return [[0]*n]; // I have no idea what the [[0]*n] syntax …
Run Code Online (Sandbox Code Playgroud)

c# python

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

C#在相应的输入类型中返回零

我想要一个执行此操作的函数:

    private static dynamic Zero(Type T)
    {
        if (T == typeof(Decimal))
        {
            return Decimal.Zero;
        }
        else if (T == typeof(Double))
        {
            return new Double();
        }
        else if (T == typeof(Int64))
        {
            return new Int64();
        }
        ...
    }
Run Code Online (Sandbox Code Playgroud)

但对于所有类型.我想避免写一个巨大的其他if语句.有没有其他方法可以做到这一点?我正在使用C#4.0.

c# dynamic

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

标签 统计

c# ×4

dynamic ×1

generics ×1

python ×1