Привести строку как Guid, используя LinqPad - PullRequest
15 голосов
/ 09 ноября 2011

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

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

ProductIds.Dump();

это дает мне

Невозможно неявно преобразовать тип 'string' в 'System.Guid'

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

Ответы [ 4 ]

33 голосов
/ 09 ноября 2011

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

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

ProductIds.Dump();
1 голос
/ 09 ноября 2011

У вас есть назначение, но вы хотите использовать сравнение - используйте == вместо =:

var ProductIds = from p in Products 
                 where p.Id == Guid.Parse("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F")
                 select p;
0 голосов
/ 15 июня 2015

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

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

Тогда

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

ProductIds.Dump();
0 голосов
/ 09 ноября 2011

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

where p.Id = Guid.Parse("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F");
...