У меня есть таблица базы данных, как это:Сортировать по расщепленной строка C# и LINQ
## Settings ##
ID (string)
Value (string)
Идентификатор представляет собой строку, как этот Area.Category.SettingName. Я пытаюсь создать структуру меню на основе идентификаторов, поэтому я хотел бы, чтобы это было представлено так.
- Area
-- Category
--- SettingName
Данные могут быть такими:
AreaOne.CategoryOne.MySetting
AreaOne.CategoryOne.MySecondSetting
AreaTwo.CategoryOne.MySetting
...
Так, чтобы сделать это, я пытался получить все один настройки уровня, и я попробовал, что с помощью этого кода:
List<Settings> settings = settings.GroupBy(x => x.ID.Split('.')[0]).FirstOrDefault().ToList()
И ожидаемый этот результат:
AreaOne
AreaTwo
Но получил этот результат:
AreaOne
AreaOne
AreaTwo
Что я делаю неправильно?
Спасибо Джон, работает как надо, нет необходимости в полном классе обратно, только строка, поэтому она идеальна. – Martin
Я попытался добавить «лимит», но получил эту ошибку: «Не могу преобразовать из« int »в« char » – Martin
@Martin: Виновато не уделять достаточного внимания. Если вам нужен предел, 'Split' заставляет вас давать разделители в виде массива. Отредактировал ответ, чтобы исправить его. – Jon