PDA

View Full Version : سوال: تابع بیشترین مقدار تکرار در یک فیلد



mr.siahatgar
یک شنبه 26 آذر 1391, 09:46 صبح
با سلام من تابعی نیاز دارم که بیشترین مقدار تکرار در یک فیلد را برگردونه و اگر هم بشه به ترتیب بیشترین تکرارها رو برگردونه . مثلا اگه ما در یک فیلد اعاد زیر را داشته باشیم
3-7-5-6-3-5-5-6-1-3-4-2-1-3-1-
بیشترین مقدار تکرار که عدد 3 می باشد را برگردونه
و یک تابع که دومین بیشترین تکرار که عدد 1 می باشد رو برگردونه
چون عدد 3 چهار بار تکرار شده و عدد 1 سه بار تکرار شده

morteza5358
یک شنبه 26 آذر 1391, 09:51 صبح
سلام
شما میتونید با استفاده از یک آرایه عددی 10 خونه ای و یه حلقه for این کار را انجام بدین.
به این ترتیب که تک تک اعداد رو چک کنه و مثلا اگه عدد 5 رو خوند به خانه پنجم آرایه یک واحد اضافه کنه.
بعدش هم مقدار های خانه های آرایه رو چک کنه.هر کدوم مقدارش بیشتر بود اندیس اون خونه همون عدد مورد نظره.

مهرداد صفا
یک شنبه 26 آذر 1391, 10:51 صبح
با سلام من تابعی نیاز دارم که بیشترین مقدار تکرار در یک فیلد را برگردونه و اگر هم بشه به ترتیب بیشترین تکرارها رو برگردونه . مثلا اگه ما در یک فیلد اعاد زیر را داشته باشیم
3-7-5-6-3-5-5-6-1-3-4-2-1-3-1-
بیشترین مقدار تکرار که عدد 3 می باشد را برگردونه
و یک تابع که دومین بیشترین تکرار که عدد 1 می باشد رو برگردونه
چون عدد 3 چهار بار تکرار شده و عدد 1 سه بار تکرار شده

سلام
نتیجه در یک خط:

//in the name of god
//صل الله علی محمد و آله

int[] Numbers=new int[]{ 3,7,5,6,3,5,5,6,1,3,4,2,1,3,1};
var query = (from number in Numbers select new { Number = number, Count = Numbers.Count((n) => n == number) }).Distinct().OrderBy((item) => item.Count);

MessageBox.Show(query.Last().Number.ToString() + " for " + query.Last().Count.ToString() + " times");
MessageBox.Show(query.ElementAt(query.Count()-2).Number.ToString() + " for " + query.ElementAt(query.Count()-2).Count.ToString() + " times");