Hi All,
I use "Distinct" to remove duplicate number from List.But my problem is when remove duplicate number the count not same as in listbox1.
listbox2 should be same with count in listbox1.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TestFor_34
{
public partial class Form1 : Form
{
List<string> Data1 = new List<string>();
List<string> Data2 = new List<string>();
List<string> Data3 = new List<string>();
public Form1()
{
InitializeComponent();
Data1.AddRange(File.ReadLines(@"C:\Users\family\Documents\Tool.txt"));
//Text file = 5682,2568
// 0251,1292
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i <= Data1.Count() - 1; i++)
{
var hashSet = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
listBox1.Items.Add(Data1[i]);
var StringToCheck = Data1[i].Split(',');
foreach (var S in StringToCheck)
{
char[] arr = S.ToCharArray();
Console.WriteLine(arr[0].ToString());
string[] find = new[] {
arr[0].ToString() + arr[1].ToString() + arr[0].ToString(),
arr[0].ToString() + arr[1].ToString() + arr[1].ToString(),
arr[0].ToString() + arr[1].ToString() + arr[2].ToString(),
arr[0].ToString() + arr[1].ToString() + arr[3].ToString(),
arr[0].ToString() + arr[2].ToString() + arr[0].ToString(),
arr[0].ToString() + arr[2].ToString() + arr[1].ToString(),
arr[0].ToString() + arr[2].ToString() + arr[2].ToString(),
arr[0].ToString() + arr[2].ToString() + arr[3].ToString(),
arr[0].ToString() + arr[3].ToString() + arr[0].ToString(),
arr[0].ToString() + arr[3].ToString() + arr[1].ToString(),
arr[0].ToString() + arr[3].ToString() + arr[2].ToString(),
arr[0].ToString() + arr[3].ToString() + arr[3].ToString(),
arr[1].ToString() + arr[0].ToString() + arr[0].ToString(),
arr[1].ToString() + arr[0].ToString() + arr[1].ToString(),
arr[1].ToString() + arr[0].ToString() + arr[2].ToString(),
arr[1].ToString() + arr[0].ToString() + arr[3].ToString(),
arr[1].ToString() + arr[2].ToString() + arr[0].ToString(),
arr[1].ToString() + arr[2].ToString() + arr[1].ToString(),
arr[1].ToString() + arr[2].ToString() + arr[2].ToString(),
arr[1].ToString() + arr[2].ToString() + arr[3].ToString(),
arr[1].ToString() + arr[3].ToString() + arr[0].ToString(),
arr[1].ToString() + arr[3].ToString() + arr[1].ToString(),
arr[1].ToString() + arr[3].ToString() + arr[2].ToString(),
arr[1].ToString() + arr[3].ToString() + arr[3].ToString(),
arr[2].ToString() + arr[0].ToString() + arr[0].ToString(),
arr[2].ToString() + arr[0].ToString() + arr[1].ToString(),
arr[2].ToString() + arr[0].ToString() + arr[2].ToString(),
arr[2].ToString() + arr[0].ToString() + arr[3].ToString(),
arr[2].ToString() + arr[1].ToString() + arr[0].ToString(),
arr[2].ToString() + arr[1].ToString() + arr[1].ToString(),
arr[2].ToString() + arr[1].ToString() + arr[2].ToString(),
arr[2].ToString() + arr[1].ToString() + arr[3].ToString(),
arr[2].ToString() + arr[3].ToString() + arr[0].ToString(),
arr[2].ToString() + arr[3].ToString() + arr[1].ToString(),
arr[2].ToString() + arr[3].ToString() + arr[2].ToString(),
arr[2].ToString() + arr[3].ToString() + arr[3].ToString(),
arr[3].ToString() + arr[0].ToString() + arr[0].ToString(),
arr[3].ToString() + arr[0].ToString() + arr[1].ToString(),
arr[3].ToString() + arr[0].ToString() + arr[2].ToString(),
arr[3].ToString() + arr[0].ToString() + arr[3].ToString(),
arr[3].ToString() + arr[1].ToString() + arr[0].ToString(),
arr[3].ToString() + arr[1].ToString() + arr[1].ToString(),
arr[3].ToString() + arr[1].ToString() + arr[2].ToString(),
arr[3].ToString() + arr[1].ToString() + arr[3].ToString(),
arr[3].ToString() + arr[2].ToString() + arr[0].ToString(),
arr[3].ToString() + arr[2].ToString() + arr[1].ToString(),
arr[3].ToString() + arr[2].ToString() + arr[2].ToString(),
arr[3].ToString() + arr[2].ToString() + arr[3].ToString(),};
for (int j = 0; j <= find.Count() - 1; j++)
{
string AoT = find[j];
Data2.Add(AoT);
}
}
for (int jj = 0; jj <= Data2.Count() - 1; jj++)
{
string BoT = Data2[jj];
int count = Convert.ToInt32(Data2.Count(s => s == BoT).ToString());
listBox1.Items.Add("We find the number " + " = " + BoT + " times" + " " + count + " ");
}
Data3.AddRange(Data2);
Data2.Clear();
listBox2.Items.Add(Data1[i]);
IEnumerable<string> distinctNum_ = Data3.Distinct();
foreach (string Num in distinctNum_)
{
int count = Convert.ToInt32(distinctNum_.Count(s => s == Num).ToString());
listBox2.Items.Add(Num + " " + count);
}
Data3.Clear();
}
}
}
}