gpt4 book ai didi

c# - 如何遍历元组项

转载 作者:太空狗 更新时间:2023-10-29 21:07:59 26 4
gpt4 key购买 nike

当我在编译时不知道元组由哪些类型组成时,如何迭代元组中的项目?我只需要一个 IEnumerable 对象(用于序列化)。

private static IEnumerable TupleToEnumerable(object tuple)
{
Type t = tuple.GetType();
if (t.IsGenericType && t.GetGenericTypeDefinition() == typeof(Tuple<,>))
{
var x = tuple as Tuple<object, object>;
yield return x.Item1;
yield return x.Item2;
}
}

最佳答案

您可以使用 Type.GetProperties 通过反射访问属性及其值

var values = tuple.GetType().GetProperties().Select(p => p.GetValue(tuple));

所以你的方法将是非常简单的Linq查询

private static IEnumerable TupleToEnumerable(object tuple)
{
// You can check if type of tuple is actually Tuple
return tuple.GetType()
.GetProperties()
.Select(property => property.GetValue(tuple));
}

关于c# - 如何遍历元组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43341177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com