J'utilise une hashtable pour lire les données du fichier et créer des clusters.Mon hashtable ne fonctionne pas
dire que les données dans le fichier est:
umair,i,umair
sajid,mark,i , k , i
La sortie est comme:
[{umair,umair},i]
[sajid,mark,i,i,k]
Mais mon code ne fonctionne pas. Voici le code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections;
namespace readstringfromfile
{
class Program
{
static void Main()
{
/* int i = 0;
foreach (string line in File.ReadAllLines("newfile.txt"))
{
string[] parts = line.Split(',');
foreach (string part in parts)
{
Console.WriteLine("{0}:{1}", i,part);
}
i++; // For demo only
}*/
Hashtable hashtable = new Hashtable();
using (StreamReader r = new StreamReader("newfile.txt"))
{
string line;
while ((line = r.ReadLine()) != null)
{
string[] records = line.Split(',');
foreach (string record in records)
{
if (hashtable[records] == null)
hashtable[records] = (int)0;
hashtable[records] = (int)hashtable[records] + 1;
Console.WriteLine(hashtable.Keys);
}
/////this portion is not working/////////////////////////////////////
foreach (DictionaryEntry entry in hashtable)
{
for (int i = 0; i < (int)hashtable[records]; i++)
{
Console.WriteLine(entry);
}
}
}
}
}
}
}
Vous n'avez pas besoin de convertir le littéral 0 en int. –
En laissant de côté tout le reste, y a-t-il une raison pour que vous utilisiez encore les collections non génériques? –
oki je ne vais pas lancer 0 mais qu'en est-il de cette section? foreach (entrée DictionaryEntry dans hashtable) { pour (int i = 0; i <(int) hashtable [enregistrements]; i ++) { Console.WriteLine (entrée); } } –