Привести строку как Guid с помощью LinqPad

Когда я запускаю в LinqPad

var ProductIds = from p in Products 
where p.Id = "F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F"
select p;

ProductIds.Dump();

это дает мне

Невозможно неявно преобразовать тип «строка» в «System.Guid»

Я просто не знаю, как применить правильное приведение к GUid, я думаю


person Silverlight Student    schedule 09.11.2011    source источник


Ответы (4)


Попробуйте использовать статический метод Guid.Parse(string guid).

var ProductIds = from p in Products 
where p.Id == Guid.Parse("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F")
select p;

ProductIds.Dump();
person Nathan Anderson    schedule 09.11.2011
comment
Уже пробовал, но это дает мне Невозможно неявно преобразовать тип «System.Guid» в ошибку «bool» - person Silverlight Student; 09.11.2011
comment
Убедитесь, что между сравнением p.Id и вашими операторами Guid.Parse() есть ==, а не один =. - person Nathan Anderson; 09.11.2011
comment
:) я должен быть пьян. Спасибо приятель - person Silverlight Student; 09.11.2011
comment
@NathanAnderson Используя LinqPad, я получаю сообщение об ошибке: 'System.Guid' does not contain a definition for 'Parse' - person Ravi Ram; 28.10.2014
comment
Попробуйте использовать конструктор, который принимает строку в качестве аргумента. msdn.microsoft.com/en-us/ библиотека/96ff78dc%28v=vs.110%29.aspx - person Nathan Anderson; 29.10.2014

В настоящее время у вас есть задание, но вы хотите использовать сравнение — используйте == вместо = :

var ProductIds = from p in Products 
                 where p.Id == Guid.Parse("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F")
                 select p;
person BrokenGlass    schedule 09.11.2011

Вы не можете разыграть его, вы должны разобрать его так:

where p.Id = Guid.Parse("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F");
person Fischermaen    schedule 09.11.2011
comment
Пожалуйста, посмотрите мой ответ на комментарий @Nathan - person Silverlight Student; 09.11.2011
comment
Так что попробуй Guid.Parse("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F").CompareTo(p.Id) = 0 - person Fischermaen; 09.11.2011
comment
Извините за беспокойство. У меня проблемы с алкоголем :) - person Silverlight Student; 09.11.2011

Вы также можете установить переменную, используя:

Guid guid = new Guid ("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F");

затем

var ProductIds = from p in Products
where p.Id == guid
select p;

ProductIds.Dump();
person Ravi Ram    schedule 15.06.2015