C# 在文本文件中查找唯一条目

C# 在文本文件中查找唯一条目,c#,.net-3.5,C#,.net 3.5,我有一个导入控制台的文件:我希望在其中搜索唯一的条目,例如: tom tim tim tom alan 搜索文件时,我要计算文件中唯一行的数量 我使用的是.netframework3.5,因此无法使用System.Linq。有什么建议吗?除了升级到.NET 4?之外,LINQ扩展方法和: 关于这一点: 我使用的是框架3.5,所以不能使用system.linq有什么建议吗 LINQ在.NET3.5中提供。但是,如果您使用的是.NET 2.0,则可以使用字典: Dictionary<str

我有一个导入控制台的文件:我希望在其中搜索唯一的条目,例如:

tom 
tim
tim
tom
alan
搜索文件时,我要计算文件中唯一行的数量


我使用的是
.netframework3.5
,因此无法使用
System.Linq
。有什么建议吗?除了升级到
.NET 4

之外,LINQ扩展方法和:

关于这一点:

我使用的是框架3.5,所以不能使用system.linq有什么建议吗

LINQ在.NET3.5中提供。但是,如果您使用的是.NET 2.0,则可以使用字典:

Dictionary<string, object> uniqueLines = new Dictionary<string, object>();
foreach (string line in File.ReadAllLines(filename)) {
    uniqueLines[line] = null;
}
int numberOfUniqueLines = uniqueLines.Keys.Count;
Dictionary uniqueLines=newdictionary();
foreach(文件中的字符串行。ReadAllLines(文件名)){
唯一行[行]=空;
}
int numberOfUniqueLines=uniqueLines.Keys.Count;

遍历文件中的行。 将每一行添加到一个
哈希集
。 返回
HashSet
Count
属性

例如:

int lineCount = new HashSet<string>(File.ReadAllLines(fileName)).Count;

.NET 3.5提供了LINQ,LINQ有什么问题?我在我的大学计算机上试过,它有3.5版本,但不存在?@evidommer5:你需要确保C#Project的目标框架版本设置为3.5
我在我的大学计算机上试过,它有3.5版本,但不存在?
我在我的计算机上试过,它确实存在exist@Sll而恶魔5号也需要为了确保引用了正确的程序集--
System.Core.dll
如果我调用正确,那么这不使用System.linq?正确。但是在.NET 3.5中,
HashSet
集合也是在System.Core.dll中定义的,因此您需要在这个解决方案和Linq解决方案中引用它。在我的编译器System.Core.dll中不存在这种情况下,也许您应该按照当我放入返回计数器时,“在.NET Framework 3.5中找不到System.Core.dll”;它出现了一个错误,无法使用。使用System.Collections.Generic添加
@sll确实需要替换为soemthing?@Evidommer5不,
不需要替换。Mark只是像哈希集一样使用字典(底层实现是相同的)。这很有用,因为Dictionary是在早期(在.NET 2.0中)引入的。他将值
null
分配给所有键,因为值功能在此应用程序中是多余的。
int lineCount = new HashSet<string>(File.ReadAllLines(fileName)).Count;
var list = new List<string>(File.ReadAllLines(fileName));
list.Sort();
var counter = 0;
string previousItem = null;
foreach (var item in list)
{
    if (item.Equals(previousItem))
        continue;
    counter++;
    previousItem = item;
}
return counter;