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();