Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加索引以复制C中字符串列表的元素#_C#_Duplicates - Fatal编程技术网

C# 添加索引以复制C中字符串列表的元素#

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); } } 增加: 我所做的基本上是一次遍历一个字符的数组。我在字典里记下了“我看到每个字符的次数”——每次看到一个新字符,我

我需要一个算法的帮助,该算法将为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);
}
}

增加:

我所做的基本上是一次遍历一个字符的数组。我在字典里记下了“我看到每个字符的次数”——每次看到一个新字符,我都会增加这个次数

当我看到一本我已经看过的字典时,我会按要求把数字加在括号里。

字典计数=新字典();
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;i
var 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);})