الگوریتمتون کامل و درست نیست .
به این شکل عمل کنین :
1_ اول تمام کلمه ها رو جدا کنین و داخل یک آرایه از string بریزین (تا این جا رو انجام دادین ) مثلا اسم آرایه رو گذاشتین words
2_2 تا آرایه 1 بعدی تعریف کنین یکی برای ذخیره هر کلمه بدون تکرار اسم مثلا w و یکی هم برای ذخیره تعداد تکرار اسم r
3_ از اول words شروع کنین به خوندن و یکی یکی برین جلو
هر کلمه رو داخل آرایه w جست و جو کنید .
اگر کلمه داخل آرایه w نبود اونو به آرایه اضافه کنین و یک عدد 1 هم به آرایه r اضافه کنین
در غیر این صورت اگر کلمه داخل w بود فقط خونه با اندیس معادل رو داخل r یک واحد اضافه کنین
مرحله 3 رو تا رسیدن به آخر words ادامه بدین.
وقتی که تموم شد w کلمه مورد نظره و r تعداد تکرار
مثلا w[0]-->ss r[0]-->3 ,,, w[1]-->kalame r[1]-->1,....
کد :
static void Main(string[] args)
{
StreamReader sr = new StreamReader("D:\\file.txt");
string str = sr.ReadToEnd();
string[] word = str.Split(' ');
string[] w = new string[word.Length];
int[] r = new int[word.Length];
int loc = 0;
for(int i=0;i<word.Length;i++)
{
int found = -1;
for (int j = 0; j < w.Length; j++)
{
if (w[j] == word[i])
{
found = j;
break;
}
}
if (found != -1)
{
r[found]++;
}
else
{
w[loc] = word[i];
r[loc]++;
++loc;
}
}
for (int i = 0; i < loc ; i++)
{
Console.WriteLine("The word >> " + w[i] + " Is Repeated : " + r[i]);
}
Console.ReadKey();
}