У меня есть List<Tuple<string, string>>
, который имеет следующие данные:
var intents = new List<Tuple<string, string>>
{
new Tuple<string, string>("60b0e926-2f3a-458d-91f7-fe4a21f1c0f1",
"Options ,Options ,Options ,Options ,Options ,Options ,Options ,Options ," +
"Options ,Options ,Options ,Options ,Options"),
new Tuple<string, string>("d463d996-78cc-428e-8a76-e4875e1c8ff4",
"RescheudleApt ,RescheudleApt ,ConfirmApt ,ConfirmApt ," +
"RescheudleApt ,RescheudleApt"),
new Tuple<string, string>("re80e926-2f3a-458d-91f7-fe4a54f1c0f1", "ConfirmAppt"),
};
Желаемый вывод для будет примерно таким:
60b0e926-2f3a-458d-91f7-fe4a21f1c0f1
Options: 13
d463d996-78cc-428e-8a76-e4875e1c8ff4
RescheudleApt : 3
ConfirmApt: 2
Так как это кортеж, элементы разделяются на «Item 1» и «Item 2», что означает, что 60b0e926-2f3a-458d-91f7-fe4a21f1c0f1
и Options ,Options ,Options ,Options ,Options ,Options ,Options ,Options ,Options ,Options ,Options ,Options ,Options
- это разные свойства.
Я дошел до этого:
foreach (var item in intents)
{
var intentList = item.Item2.Split(',')
.Select(x => x.Trim())
.Where(x => !string.IsNullOrWhiteSpace(x))
.ToList().GroupBy(x => x)
.Select(g => new { Value = g.Key, Count = g.Count() })
.OrderByDescending(x => x.Count);
}
Что дает мне вывод двух свойств:
Value : Options
Count : 13
EDIT:
Содержание является List<Tuple<string, string>>()
Как бы я поступил так?