У меня есть список, который содержит несколько строк, как показано ниже:Заменить часть элемента в виде списка строк
List<String> l = new List<String>(){
"item1 1",
"item2 2",
"item3 3",
"item1 4",
"item1 5",
"item3 6"};
Я хотел бы подвести элементы, которые являются одинаковыми. Пример:
l = {"item1 10", "item2 2", "item3 9"}
Я попытался это:
List<String> result = new List<String>();
for (int i = 0; i < total.Count; i++)
{
for (int j = 0; j < i; j++)
{
int diferenta = 0;
if (total[i].Substring(0, total[i].IndexOf(" ")).Equals(total[j].Substring(0, total[j].IndexOf(" "))))
{
diferenta = int.Parse(ExtractNumber(total[i].Substring(total[i].IndexOf(" ")))) + int.Parse(ExtractNumber(total[j].Substring(total[j].IndexOf(" "))));
total[i] = total[i].Replace(ExtractNumber(total[i].Substring(total[i].IndexOf(" "))), diferenta.ToString());
result.Add(total[i]);
}
}
И, чтобы получить различные элементы:
List<String> final = result.Distinct().toList();
Мой путь не является правильным на всех, так что я хочу спросить вас Помогите.