Проблема новичка с LINQ в vb.net - PullRequest
2 голосов
/ 16 декабря 2008

Вот одна строка из одной из моих функций, чтобы проверить, есть ли у какого-либо объекта в моем массиве заданное свойство с совпадающим значением

Return ((From tag In DataCache.Tags Where (tag.FldTag = strtagname) Select tag).Count = 1)

WHERE ....

DataCache.Tags - массив пользовательских объектов

strtagname = "brazil"

и Бразилия определенно является именем тега, хранящимся в одном из пользовательских объектов в массиве.

Однако функция постоянно возвращает false.

Может ли кто-нибудь подтвердить мне, что вышеупомянутое должно или не должно работать.

и если это не сработает, может кто-нибудь сказать мне лучший способ проверить, содержит ли какой-либо из объектов в массиве свойство с определенным значением.

Полагаю, я ищу эквивалент оператора SQL EXISTS.

Большое спасибо в надежде.

Ответы [ 2 ]

6 голосов
/ 16 декабря 2008

Ваш код в настоящее время проверяет, является ли счет точно один.

Эквивалент EXISTS в LINQ: Любой . Вы хотите что-то вроде:

Return DataCache.Tags.Any(Function(tag) tag.FldTag = strtagname)

(Чудесным образом кажется, что синтаксис может быть верным ... похоже на примеры документов ...)

0 голосов
/ 18 декабря 2008

Большое спасибо за ответ.

Ваш код не работает. Затем я понял, что сравниваю со значением массива, поэтому оно будет чувствительным к регистру.

Как бы я ни радовался, я задал вопрос, так как нашел лучший способ, чем мой.

Еще раз большое спасибо!

...