Строка Cast как Guid с использованием LinqPad

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

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

ProductIds.Dump();

это дает мне

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

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

Ответы

Ответ 1

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

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

ProductIds.Dump();

Ответ 2

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

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

Ответ 3

Вы не можете его бросить, вам нужно разобрать его так:

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

Ответ 4

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

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

Тогда

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

ProductIds.Dump();