C# 检查字符串是否为LINQ中的GUID
我正在开发ASP.NET Web表单应用程序。我有一个带有属性的classC# 检查字符串是否为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
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...
}