C# 向字符串中添加递增的数字
我想在字符串的末尾加一个数字 例如 约翰1 贝思2 麦克风3 玛丽4C# 向字符串中添加递增的数字,c#,.net,C#,.net,我想在字符串的末尾加一个数字 例如 约翰1 贝思2 麦克风3 玛丽4 类最终名称 { 公共字符串名称(字符串初始名称) { string finalName=string.Empty; 对于(int i=1;i
类最终名称
{
公共字符串名称(字符串初始名称)
{
string finalName=string.Empty;
对于(int i=1;i<10;i++)
{
finalName=initialName+i.ToString(“0”);
}
返回最终名称;
}
}
最终名称=新的最终名称();
我得到的结果是:
jonh9
贝思9
mike9
玛丽9
我做错了什么?您应该从
函数名中删除for循环。
循环总是以i
等于9结束,结果总是initialName
+9
我认为你需要这样的东西:
string[] names = new string[] { "john", "beth", "mike", "mary" };
for (int i = 0; i < names.Length; i++)
{
names[i] = names[i] + (i + 1).ToString();
}
string[]names=新字符串[]{“john”、“beth”、“mike”、“mary”};
for(int i=0;i
您应该从函数名中删除for循环。
循环总是以i
等于9结束,结果总是initialName
+9
我认为你需要这样的东西:
string[] names = new string[] { "john", "beth", "mike", "mary" };
for (int i = 0; i < names.Length; i++)
{
names[i] = names[i] + (i + 1).ToString();
}
string[]names=新字符串[]{“john”、“beth”、“mike”、“mary”};
for(int i=0;i
您只是在方法内部循环并返回最后一个值
如果希望函数的每次调用都添加一个递增的数字,则将此计数器添加为类中的字段,并将其添加到字符串中:
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));
}
public IEnumerable名称(IEnumerable名称)
{
返回名称。选择((s,i)=>s+(i+1));
}
您只是在方法内部循环并返回最后一个值
如果希望函数的每次调用都添加一个递增的数字,则将此计数器添加为类中的字段,并将其添加到字符串中:
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));
}
public IEnumerable名称(IEnumerable名称)
{
返回名称。选择((s,i)=>s+(i+1));
}
您要做的是修改您的方法,使其接受一组名称,然后使用递增索引器修改这些名称:
public static IEnumerable<string> ModifyNames(IEnumerable<string> names)
{
int index = 1;
foreach (string name in names)
{
yield return name + index;
index++;
}
}
公共静态IEnumerable修改名称(IEnumerable名称)
{
int指数=1;
foreach(名称中的字符串名称)
{
收益率返回名称+索引;
索引++;
}
}
Fiddle您要做的是修改您的方法,使其接受一组名称,然后使用递增索引器修改这些名称:
public static IEnumerable<string> ModifyNames(IEnumerable<string> names)
{
int index = 1;
foreach (string name in names)
{
yield return name + index;
index++;
}
}
公共静态IEnumerable修改名称(IEnumerable名称)
{
int指数=1;
foreach(名称中的字符串名称)
{
收益率返回名称+索引;
索引++;
}
}
Fiddle循环完成后返回。在循环的最后,你们会得到i=9,这就是为什么你们会得到这种行为。你能分享一下你是如何调用这个方法的吗?@ChetanRanpariya我编辑添加了这个类。这些名称来自一个文本文件。当我第一次复制它时,我错过了它。让我重新表述我的问题-谁调用code.ame
方法?您能分享从文件中读取名称并调用此方法的代码吗?对不起。我今天似乎无法复制。您将在循环完成后返回。在循环的最后,你们会得到i=9,这就是为什么你们会得到这种行为。你能分享一下你是如何调用这个方法的吗?@ChetanRanpariya我编辑添加了这个类。这些名称来自一个文本文件。当我第一次复制它时,我错过了它。让我重新表述我的问题-谁调用code.ame
方法?您能分享从文件中读取名称并调用此方法的代码吗?对不起。我今天似乎无法复制。嗯,我不熟悉您的代码,但如果您每次都创建一个新实例,它将无法工作。您必须将字段更改为static
或继续使用相同的实例。我不熟悉您的代码,但如果您每次都创建一个新实例,它将无法工作。您必须将字段更改为static
或继续使用相同的实例