Сформируйте правильный оператор SELECT для запроса LINQ в формате iTunes XML
Я новичок vb.net пользователь и я использую следующее vb.net код для чтения XML-кода библиотеки iTunes. Я нашел его в интернете несколько лет назад, и он работает очень быстро.
Дим треки = от T в iTunes.&ЛТ;plist в теме>.&ЛТ;дикт и GT;.&ЛТ;дикт и GT;.&ЛТ;дикт&ГТ; выберите новый элемент XElement("песня", из ключевых в Т.&ЛТ;ключ&ГТ; выберите новый элемент XElement(ключ.Ценность.Метод toString.Замените(" ", ""), CType(key.NextNode, XElement).Ценность.Метод toString))
Dim iTunesTracks = из песни в треках _
Выберите песню.<trackid>.Value, _
песня.TrackNumber.Значение, _
песня.<имя>.значение, _
песня.<исполнитель>.значение, _
песня.<альбом>.значение, _
песня.<год>.значение, _
песня.<жанр>.значение, _
песня.<подкаст>.значение, _
песня.<вид>.значение, _
песни.&отдых, типа рельсов и GT;.Значение, _
песня.<компиляция>.значение
DataGridView1.Источник данных = iTunesTracks.Список
Проблема в том, что этот код преобразует все в строку, поэтому такие поля, как Compilation, которые должны быть логическими, ничего не показывают в DataGridView. Я хочу выбрать только те записи iTunes, для которых флаг компиляции установлен в True. Из моего обзора онлайн-ресурсов следует, что я мог бы добавить оператор SELECT или WHERE к приведенному выше коду, который выполнял бы правильную фильтрацию, но я не могу заставить код работать должным образом. Есть идеи?
Что я уже пробовал:
1. я попытался создать DataTable с новым столбцом CompilationTrueFalse, который заполняется строкой (либо "True", либо "False"), прочитав ячейки DataGridView и выполнив преобразование.
2. я попытался перестроить линию выше, которая делает Из ключа в t<key>...выберите Новый XElement… чтобы удалить преобразование всего в строку, но я не мог определить правильные методы и синтаксис.
3. Я пытался добавить предложение where в коде выше:
Где(Т.Элементы("ключ").Любой(функция(EXP) за выр.Значение = "сборник", атакже (ctype для(эксп.NextNode, Элемент XElement).Name = "true"))
Но я также не мог заставить этот код работать. Спасибо за любую помощь.