c# string concat获取另一个变量

本文关键字:另一个 变量 获取 concat string | 更新日期: 2023-09-27 18:01:30

大家好。我想问是否有可能连接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

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

编辑1:(附注:我将使用超过10个变量,我只指出其中的2个,使它简单)

编辑2:是的,是的。我想要("num"+ I)长度等于num1。length + num2.Length.

c# string concat获取另一个变量

第一种方式:

我建议您将所有字符串添加到列表中,然后使用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

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

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

和之后一个简单的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);