У меня есть документ XML, который выглядит какLinq запрос, чтобы соответствовать строковые значения в XML
<recipes>
<ingredient value"1">APPLE</ingredient>
<ingredient value"2">BANANA</ingredient>
<ingredient value"3">APPLE ORANGE</ingredient>
<ingredient value"4">APPLE BANANA</ingredient>
<ingredient value"5">APPLE STRAWBERRY</ingredient>
<ingredient value"6">GRAPES</ingredient>
</recipes>
Теперь пользователь вводит некоторую строку, например, Apple Grapes Banana
. Я сортирую его в алфавитном порядке и пытаюсь сопоставить его с одним из значений, рекурсивным образом исключая последнее слово, используя строковые манипуляции. Но я уверен, что в Linq есть более эффективный способ сделать это. Я хочу, чтобы запрос возвращал ближайшее соответствие в XML <ingredient value"4">APPLE BANANA</ingredient>
.
string str = "APPLE BANANA GRAPES"; // user input arranged by ascending alphabet and capitalized
XDocument xdoc = XDocument.Load(above xml);// gets above xml
var h = xdoc.Root.Elements("ingredient").FirstOrDefault(u => u.Value == str);//recurse these steps
if (h == null)
{
str = str.Remove(str.LastIndexOf(" "));//recurse these steps
}
//check if str matches any value;
//if not remove last word from str and check again;
Пожалуйста отправьте запрос LINQ вы уже пробовали – Amicable
@ Применимо Я только что опубликовал несколько строк кодов, которые были перепрограммированы. –
Не уверен, что это полезно, но с помощью этого алгоритма, если пользователь входит в «GRAPEFRUIT GRAPES», совпадения не будет найдено. То же самое для «НИЧЕГО ЯБЛОКА». Я бы ожидал, что APPLE ORANGE появится ... – oerkelens