从.net 2.0中的文本框中删除重复的行

时间:2013-05-30 07:56:19

标签: winforms c#-2.0

我有一个多行文字,我想删除其中的重复行。我使用以下代码分隔数组中的行。

string[] lines = txtPathological.Text.ToString().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);

但是没有命令行.Distinct()。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

        var lines = txtPathological.Text.ToString().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
        var dLines = lines.ToList().Distinct();

编辑:

        string[] lines = txtPathological.Text.ToString().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
        List<string> dLines = new List<string>();
        foreach (var line in lines)
        {
            if (!dLines.Contains(line))
            {
                dLines.Add(line);
            }
        }

答案 1 :(得分:1)

你可以尝试:

string[] lines = txtPathological.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
        List<string> templines = new List<string>(lines);
        List<string> tempList = new List<string>();
        for (int i = 0; i < templines.Count; i++)
        {               
           if (!tempList.Contains(lines[i])) tempList.Add(lines[i]);
        }  

TempList是您的排序列表。 希望它可以提供帮助。

答案 2 :(得分:1)

这对我有用......

String[] lines = { "my line 1", "my line 2", "mhyline3", "lslfkdfkjdf", "my line 2", "my line 1", "my line 1", "LKDJF" };
List<String> list = new List<String>();
foreach (String s in lines)
{
    if (!list.Contains(s))
        list.Add(s);
}

“list”将包含distict行,您可以使用以下命令返回数组:

String[] distinctLines = list.ToArray();

如果这不起作用,我怀疑你的行有些愚弄Contains()方法。如果是这样,您可能必须制作一个方法来替换将处理线路检查的Contains(),local或extension。