插入一个文本文件与C#中的哈希表

问题描述:

我有一个文本文件巫婆包含这样的值:插入一个文本文件与C#中的哈希表

0000000000 
0000111222 
0000144785 

我需要插入该文件与C#中的哈希表,这是我做了什么等等远:

 string[] FileLines = File.ReadAllLines(@"D:TestHash.txt"); 

     Hashtable hashtable = new Hashtable(); 

     foreach (string line in FileLines) 
     { 
      // dont know what to do here 
     } 

和之后,我需要匹配从文本框中的值与散列表值。我该怎么办?

+3

为什么'Hashtable',而不是一个的Hashset''的价值? – fubo

+0

散列表有一个键和一个值。你想做什么?插入文件行作为键和值?为钥匙使用别的东西? – Jamiec

+1

尝试'hashtable.add(hashtable.count.ToString(),line);' –

A Hashtable是用于键值对的容器。既然你只有值,而不是键值对,你不需要一个哈希表,你需要一个HashSet:如何使用哈希一套(包括一个例子)

HashSet<string> fileLineSet = new HashSet<string>(FileLines); 

检查MSDN

+0

这有效,但如何做匹配的事情?你能给一个办法吗? –

+0

你最好的,解决了! –

这读取所有的行成一个HashSet,并检查一个TextBox的反对

HashSet<string> items = new HashSet<string>(File.ReadLines(@"D:\TestHash.txt")); 
bool hasValue = items.Contains(TextBox.Text); 

static void Main(string[] args) 
    { 
     string[] FileLines = File.ReadAllLines("your text file path"); 

     Hashtable hashtable = new Hashtable(); 

     foreach (string line in FileLines) 
     { 
      if (!hashtable.ContainsKey(line)) 
      { 
       hashtable[line] = line; 
      } 
     } 
     foreach (var item in hashtable.Values) 
     { 
      //here you can match with your text box values... 
      //why you need to insert text file data into hash table really i dont know.from above foreach loop inside only you can match the values.might be you have some requirement for hash table i hope 
      string textboxVal = "text1"; 
      if (item == textboxVal) 
      { 
       //both are matched.do your logic 
      } 
      else{ 
       //not matched. 
     } 
     } 
    } 
+0

嗨fubo,我希望我的回答可能对你有所帮助。 – Surya

+0

你能为你的代码添加一点解释吗?这将有助于我们理解答案。 – sam

+0

将文本文件数据读入FileLines变量。首先foreach循环循环文件数据,并将这些值作为散列表键和vaues保存到散列表中,这里避免了通过if条件将重复记录添加到散列表。稍后循环哈希表值并与文本框值匹配。 – Surya