我正在使用ASP.NET Web窗体应用程序。我的课程Client
有属性
public string Id { get; set; }
在一些地方,我需要检查Id
是否实际上是一个guid。例如,我有这段代码:
Guid GuidID;
foreach (Client item in clients)
{
bool isGUID = Guid.TryParse(item.Id, out GuidID);
if (!isGUID)
{
hasExistingClient = true;
}
}
if (hasExistingClient)
{
// Do something...
}
这是很多代码,只是为了检查List<Client> clients
(客户端)中是否有Client
真实Id
而不是guid。我想,如果可能的话,让Linq查询出来。像
if (clients.Any(c => c.Id is GUID))
但我不知道在is GUID
的地方写些什么。
答案 0 :(得分:9)
Guid guidID;
bool hasGUID = clients.Any(c => Guid.TryParse(c.Id, out guidID));
答案 1 :(得分:0)
您可以使用OfType从Guid类型的项中提取值。但是,我怀疑你需要这个,因为你有字符串中的值。
var result = items.OfType();
因此,你可以使用这个:
var items = new[] {"{Guid 1}", "{Guid 2}"}.ToList();
var guidItem = new Guid();
var result = from item in items
where Guid.TryParse(item, out guidItem)
select guidItem;
if (result.Any())
{
// you have got some itesm...
}