我有一个多行文本,我想删除其中的重复行。我使用以下代码分隔数组中的行。
string[] lines = txtPathological.Text.ToString().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
但是没有命令行.Distinct()。有没有办法做到这一点 ?
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);
}
}
这对我有用...
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(),以处理对行的检查。
你可以试试:
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 是您的排序列表。希望它可以帮助。