美好的一天。我想问一下是否可以连接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。
答案 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.Length
和num2.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);