我有一个多行文字,我想删除其中的重复行。我使用以下代码分隔数组中的行。
string[] lines = txtPathological.Text.ToString().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
但是没有命令行.Distinct()。有没有办法做到这一点?
答案 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。