【发布时间】:2011-11-07 15:17:05
【问题描述】:
我有一个如下列表(电子邮件列表如此之大):
源列表:
item 0 : jumper@yahoo.com|32432
item 1 : goodzila@yahoo.com|32432|test23
item 2 : alibaba@yahoo.com|32432|test65
item 3 : blabla@yahoo.com|32432|test32
每个项目的重要部分是电子邮件地址,其他部分(用管道分隔不重要)但我想将它们保留在最终列表中。
正如我所说,我的清单很大,我认为不建议使用其他清单。
如何在不使用 LINQ 的情况下从列表中删除重复的电子邮件(整个项目)?
我的代码如下:
private void WorkOnFile(UploadedFile file, string filePath)
{
File.SetAttributes(filePath, FileAttributes.Archive);
FileSecurity fSecurity = File.GetAccessControl(filePath);
fSecurity.AddAccessRule(new FileSystemAccessRule(@"Everyone",
FileSystemRights.FullControl,
AccessControlType.Allow));
File.SetAccessControl(filePath, fSecurity);
string[] lines = File.ReadAllLines(filePath);
List<string> list_lines = new List<string>(lines);
var new_lines = list_lines.Select(line => string.Join("|", line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)));
List<string> new_list_lines = new List<string>(new_lines);
int Duplicate_Count = 0;
RemoveDuplicates(ref new_list_lines, ref Duplicate_Count);
File.WriteAllLines(filePath, new_list_lines.ToArray());
}
private void RemoveDuplicates(ref List<string> list_lines, ref int Duplicate_Count)
{
char[] splitter = { '|' };
list_lines.ForEach(delegate(string line)
{
// ??
});
}
编辑:
该列表中一些重复的电子邮件地址有不同的部分 ->
我能对他们做些什么:
意思是
goodzila@yahoo.com|32432|test23
and
goodzila@yahoo.com|asdsa|324234
提前致谢。
【问题讨论】:
-
不重复 - 我的 q 不同/请看我的评论...
-
为什么天哪,你有“无 LINQ”作为要求?
-
@Steven 寻找和学习可能的方法...
-
其他问题中的许多回答都可以解决您的问题。
标签: c# .net list duplicates