我想在字符串的末尾添加一个数字。
例如。
john1
beth2
mike3
mary4
class finalName
{
public string name(string initialName)
{
string finalName = string.Empty;
for (int i = 1; i < 10; i++)
{
finalName = initialName + i.ToString("0");
}
return finalName;
}
}
finalName name = new finalName();
我得到的结果是:
jonh9
beth9
mike9
mary9
我做错了什么?
答案 0 :(得分:3)
您要做的是修改您的方法,使其收集一些名称,然后使用递增索引器修改它们:
public static IEnumerable<string> ModifyNames(IEnumerable<string> names)
{
int index = 1;
foreach (string name in names)
{
yield return name + index;
index++;
}
}
小提琴here
答案 1 :(得分:1)
您应该从{"meta":{},"errors":[{"status":400,"code":"invalid_payment","title":"The rider's payment method is invalid and they must update their billing info."}]}
功能中删除for循环。
您的循环始终以name
等于9结束,结果始终为i
+ 9。
我认为你需要这样的东西:
initialName
答案 2 :(得分:1)
您只是在方法内循环并返回最后一个值。
如果您希望函数的每次调用都添加一个递增的数字,那么将此counter
作为一个字段添加到您的类中并将其添加到字符串中:
int counter = 1;
public string name(string initialName)
{
return initialName + counter++;
}
如果您在每次调用时都创建一个新实例,那么该变量应该是static
:
static int counter = 1;
public string name(string initialName)
{
return initialName + counter++;
}
如果您希望向函数发送字符串列表并使用递增的数字返回列表,那么您应首先更改签名以获取集合并返回集合:
public IEnumerable<string> name(IEnumerable<string> names)
{
return names.Select( (s,i) => s+(i+1));
}