C# 从列表中获取第一个GUID类型值
我有一个字符串列表,它可以保存任何数据类型的数据C# 从列表中获取第一个GUID类型值,c#,arrays,linq,arraylist,guid,C#,Arrays,Linq,Arraylist,Guid,我有一个字符串列表,它可以保存任何数据类型的数据 [0]: "" [1]: "api" [2]: "Lookup" [3]: "user" [4]: "MapDesignation" [5]: "84e57c3c-51d2-4e4d-a7ae-db2ee088a3c6" 代码: 现在我的要求是需要从这个列表中获取第一个GUID值。 该列表可以容纳多个GUID类型值,但我只需要第一个 谢谢假设您已经在某种类型的字符串列表中获得了数据: List&l
[0]: ""
[1]: "api"
[2]: "Lookup"
[3]: "user"
[4]: "MapDesignation"
[5]: "84e57c3c-51d2-4e4d-a7ae-db2ee088a3c6"
代码:
现在我的要求是需要从这个列表中获取第一个GUID值。
该列表可以容纳多个GUID类型值,但我只需要第一个
谢谢假设您已经在某种类型的字符串列表中获得了数据:
List<string> data = ....;
string value = data.Where(d => Guid.TryParse(d, out var _).FirstOrDefault();
如果列表包含一系列类型,其中可能包括Guid
,则可以使用of type
:
List<object> data = ...
var guid = data.OfType<Guid>().FirstOrDefault();
列表数据=。。。
var guid=data.OfType().FirstOrDefault();
在这种情况下,如果没有guid,则
guid
将设置为guid.Empty
“/api/Lookup/user/mapsignation/84e57c3c-51d2-4e4d-a7ae-db2ee088a3c6”。类型()的拆分(“/”)。First();我有这个,但是得到'System.InvalidOperationException',你能看看有什么遗漏吗?你应该能够迭代,然后在每个元素上使用Guid.TryParse,看看它是否是有效的Guid@Sean OP的问题是不明确的:他们声明他们有一个对象类型列表(即列表
),并且想要获取第一个Guid
…但实际上从您的第一个注释来看,这似乎真的是一个字符串列表。你必须澄清@在您提供的解决方案中,尝试了actionContext.Request.RequestUri.AbsolutePath.Split('/')。其中(d=>Guid.TryParse(d.ToString(),out val))。FirstOrDefault()
List<object> data = ....;
var value = data.Where(d => Guid.TryParse(d.ToString(), out var _).FirstOrDefault();
List<object> data = ...
var guid = data.OfType<Guid>().FirstOrDefault();