c#string concat获取另一个变量

时间:2014-05-04 13:15:14

标签: c# string variables

美好的一天。我想问一下是否可以连接2个字符串来获取另一个变量。

假设我有这段代码:

string num1 = "abcdefgh";
string num2 = "ijklmnop";
int numLength = 0;

我希望使用forloop

获取num1和num2的值
for(int i =1; i<= 2; i++)
{
    numLength = ("num" + i).Length + numLength;
}
Console.WriteLine("Length is {0}", numLength);

我希望它输出

  

长度为16

我做了上面的代码,但它实际上给了我不同的价值。

Edit1 :( P.S。我将使用10个以上的变量,我只是指出其中2个变得简单)

Edit2:是的,是的。我想要(“num”+ i).Length给我num1.Legnth + num2.Length。

2 个答案:

答案 0 :(得分:4)

第一种方式

我建议您将所有字符串添加到List中,然后使用Sum方法获取总长度。

List<string> allStrings = new List<string>();
allStrings.Add(num1);
allStrings.Add(num2);
...
allStrings.Add(num10);

var totalLength = allStrings.Sum(x => x.Length);

第二种方式

或者如果您想用for循环计算总长度:

int totalLength = 0;
for (int i = 0; i < allStrings.Count; i++)
{
    totalLength = totalLength + allStrings[i].Length;
}

第三种方式

如果您不想使用List,则可以使用String.Concat,然后使用Length属性。

var totalLength = String.Concat(num1, num2).Length;

结果是 16


修改

在我看来,您认为("num" + i).Length会给您num1.Lengthnum2.Length。这是错误的。

答案 1 :(得分:0)

假设我们有一些字符串,我们想要所有这些字符串的总长度。

在这种情况下,您需要将所有字符串存储在一个数组中,这样您就可以对它们进行计数并使用索引。

之后,一个简单的for(或foreach)循环可以解决问题:

            string[] texts = new string[20]; //You can use any number u need, but in my code I wrote 20.
            texts[0] = "sample text 1";
            texts[1] = "sample text 2";
            // add your strings ...

            int totalLenght = 0;
            foreach (string t in texts)
            {
                totalLenght += t.Length;
            }
            Console.WriteLine("Length is {0}", totalLenght);

如果您需要无限大小的变量,请使用List<T>

这里是例子:

            List<string> texts = new List<string>();
            texts.Add("sample text 1");
            texts.Add("sample text 2");
            // add your strings ....

            int totalLenght = 0;
            for (int i = 0; i < texts.Count; i++)
            {
                totalLenght += texts[i].Length;
            }
            Console.WriteLine("Length is {0}", totalLenght);