C# 添加索引以复制C中字符串列表的元素#
我需要一个算法的帮助,该算法将为C#中字符串列表中的重复元素添加索引 i、 e 将成为C# 添加索引以复制C中字符串列表的元素#,c#,duplicates,C#,Duplicates,我需要一个算法的帮助,该算法将为C#中字符串列表中的重复元素添加索引 i、 e 将成为 A, B, C, D, A (1), B (1), E, F, A (2) 字典计数=新建字典(); foreach(myCharArray中的字符c) { if(计数键包含(c)) { 计数[c]++; 添加(c+“(“+计数[c]+”)); } 其他的 { 计数。添加(c,0); } } 增加: 我所做的基本上是一次遍历一个字符的数组。我在字典里记下了“我看到每个字符的次数”——每次看到一个新字符,我
A, B, C, D, A (1), B (1), E, F, A (2)
字典计数=新建字典();
foreach(myCharArray中的字符c)
{
if(计数键包含(c))
{
计数[c]++;
添加(c+“(“+计数[c]+”));
}
其他的
{
计数。添加(c,0);
}
}
增加:
我所做的基本上是一次遍历一个字符的数组。我在字典里记下了“我看到每个字符的次数”——每次看到一个新字符,我都会增加这个次数
当我看到一本我已经看过的字典时,我会按要求把数字加在括号里。字典计数=新字典();
var strings = new string[] { "A", "B", "C", "D", "A", "B", "E", "F", "A" };
Dictionary<string, int> counts = new Dictionary<string, int>();
for (int i = 0; i < strings.Length; ++i)
{
if (counts.ContainsKey(strings[i]))
strings[i] = string.Format("{0} ({1})", strings[i], counts[strings[i]]++);
else
counts.Add(strings[i], 1);
}
foreach(myCharArray中的字符c)
{
if(计数键包含(c))
{
计数[c]++;
添加(c+“(“+计数[c]+”));
}
其他的
{
计数。添加(c,0);
}
}
增加:
我所做的基本上是一次遍历一个字符的数组。我在字典里记下了“我看到每个字符的次数”——每次看到一个新字符,我都会增加这个次数
当我看到一个我已经看到的字符串时,我会按照要求将数字添加到括号中。var strings=newstring[]{“A”、“B”、“C”、“D”、“A”、“B”、“E”、“F”、“A”};
var strings = new string[] { "A", "B", "C", "D", "A", "B", "E", "F", "A" };
Dictionary<string, int> counts = new Dictionary<string, int>();
for (int i = 0; i < strings.Length; ++i)
{
if (counts.ContainsKey(strings[i]))
strings[i] = string.Format("{0} ({1})", strings[i], counts[strings[i]]++);
else
counts.Add(strings[i], 1);
}
字典计数=新字典();
for(int i=0;ivar strings=新字符串[]{“A”、“B”、“C”、“D”、“A”、“B”、“E”、“F”、“A”};
字典计数=新字典();
for(int i=0;i
使用Lamba/LINQ
string x = "A, B, C, D, A, B, E, F, A";
x = x.Replace(" ", "").Replace(",", ""); //Remove the spaces and commas
var l = x.Select((v, i) => String.Format("{0}({1})", v, x.Substring(0, i).Count(c => c.Equals(v))));
var s = l.Select(c=>c.Replace("(0)","")).ToArray();
string result = String.Join(", ", s);
使用Lamba/LINQ
string x = "A, B, C, D, A, B, E, F, A";
x = x.Replace(" ", "").Replace(",", ""); //Remove the spaces and commas
var l = x.Select((v, i) => String.Format("{0}({1})", v, x.Substring(0, i).Count(c => c.Equals(v))));
var s = l.Select(c=>c.Replace("(0)","")).ToArray();
string result = String.Join(", ", s);
我希望有人能用LINQI做到这一点。我希望有人能用Linq做到这一点非常好,它帮助我用数组中的列(与Excel中的列名在OpenXML中使用的方式相同)IEnumerable name=new[]{“Columna”、“Columna”、“Nombre”、“Columna”、“Apellidos”、“Columna”};names=names.Select((columnName,index)=>{string duplicatedIndex=names.Take(index).Count(item=>item==columnName.ToString();返回string.Format({0}{1}),columnName,duplicatedIndex==“0”?string.Empty:duplicatedIndex);})代码>非常好,它帮助我处理数组中的列(与Excel中的列名相同,在OpenXML中使用)IEnumerable name=new[]{“Columna”、“Columna”、“Nombre”、“Columna”、“Apellidos”、“Columna”};names=names.Select((columnName,index)=>{string duplicatedIndex=names.Take(index).Count(item=>item==columnName.ToString();返回string.Format({0}{1}),columnName,duplicatedIndex==“0”?string.Empty:duplicatedIndex);})代码>