LINQ在列表中查找字符串重复项

时间:2018-11-29 00:00:54

标签: regex string linq filter duplicates

我正在尝试防止列表中的名称重复,但到目前为止还算不上运气。

我有一个条目列表,每个条目都有一个名称(例如,条目:文件”,“ file1 ”,“ someFile ”,“ 另一个文件”)。每当我创建新条目时,都会将其添加到条目列表中。但是我不想添加相同名称的新条目。

我有一个刚创建的文件(例如名称: file “)。
如何找到所有重复的名称,并在末尾添加“ file2 ”?
很抱歉,这个问题有点含糊。

我曾尝试使用 LINQ Regex ,但是我对这些东西还是陌生的,所以不确定自己在做什么。

1 个答案:

答案 0 :(得分:0)

根据您所发布的内容,使用if-else条件的简单程序可以解决您的问题:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;


public class Program
{
    public static void Main()
    {
        string[] entries = new []{"file", "file1", "someFile", "anotherFile", "file", "someFile", "file"};
        List<string> curatedEntries = new List<string>();

        foreach(string e in entries)
        {
            int index = 0;
            string entry = e;
            Check:
            if(CheckExists(curatedEntries, entry)){
                index++;
                entry = e + index;
                goto Check;
            }

            curatedEntries.Add(entry);
        }
        curatedEntries.ForEach(x=>Console.WriteLine(x));
    }

    public static bool CheckExists(List<string> lst,string e)
    {
        return lst.Any(x=>x.Equals(e));
    }
}

这里是小提琴:https://dotnetfiddle.net/fdSClH