与 foreach 循环的字符串比较。预期输出为"Facebook"



如何使用foreach循环比较字符串中的两个元素并显示重复次数最多的值?

class Program
{
static void Main(string[] args)
{
string[] values = { "Facebook", "Google", "Facebook" };
foreach (var value in values)
{
// need to comparing the elements in the array 
Console.WriteLine(value); /* print the repeated value*/
}            
}
}

使用LINQ 可以很容易地做到这一点

var mostRepeatedValue = values
.GroupBy(v => v)
.OrderByDescending(gp => gp.Count())
.Select(g => g.Key).FirstOrDefault();

您可以尝试以下代码

Dictionary<string, int> stringOccurDict = new Dictionary<string, int>();
string[] values = { "Facebook", "Google", "Facebook" };
foreach(string x in values)
{
if (!stringOccurDict .ContainsKey(x))
stringOccur.Add(x, values.Count(c => values.Contains(c)));
});
string repeatedString = stringOccur.Where(x => x.Value == stringOccur.Values.Max()).FirstOrDefault().Key;

输出

Facebook

您也可以使用.Value获取计数

最新更新