C# 检查字符串是否为LINQ中的GUID

C# 检查字符串是否为LINQ中的GUID,c#,linq,C#,Linq,我正在开发ASP.NET Web表单应用程序。我有一个带有属性的classClient publicstringid{get;set;} 在一些地方,我需要检查Id是否实际上是一个guid。例如,我有以下代码: Guid GuidID; foreach (Client item in clients) { bool isGUID = Guid.TryParse(item.Id, out GuidID); if (!isGUID) { hasExisting

我正在开发ASP.NET Web表单应用程序。我有一个带有属性的class
Client

publicstringid{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...
}
这是很多代码,只是为了检查在
列表客户机
(客户机)中是否有一个
客户机
,具有真实的
Id
,而不是guid。如果可能的话,我想用这个来进行Linq查询。差不多

if (clients.Any(c => c.Id is GUID))

但是我不知道在
is GUID

的位置写什么。您可以使用of type从GUID类型的项中提取值。然而,我怀疑您需要这个,因为您有字符串中的值

Guid guidID;
bool hasGUID = clients.Any(c => Guid.TryParse(c.Id, out guidID));
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... 
            }