超全模态模型 × Harness 升级,升级解锁 ArkClaw,最新支持 DeepSeek-V4 系列与 GLM-5.1
因为C#中的Tuple类型是泛型固定长度的(最多支持8个直接元素,超过则需嵌套),你可以通过以下两种方式实现转换,适配任意短长度的List:
直接根据列表长度调用对应参数数量的Tuple.Create方法,适合已知长度范围且追求性能的场景:
Tuple.Create
public static object ConvertListToTuple(List<object> list) { return list.Count switch { 1 => Tuple.Create(list[0]), 2 => Tuple.Create(list[0], list[1]), 3 => Tuple.Create(list[0], list[1], list[2]), 4 => Tuple.Create(list[0], list[1], list[2], list[3]), 5 => Tuple.Create(list[0], list[1], list[2], list[3], list[4]), 6 => Tuple.Create(list[0], list[1], list[2], list[3], list[4], list[5]), 7 => Tuple.Create(list[0], list[1], list[2], list[3], list[4], list[5], list[6]), 8 => Tuple.Create(list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7]), _ => throw new ArgumentException("列表长度超出Tuple支持的最大直接元素数(8)", nameof(list)) }; }
Tuple<object>
Tuple<object, object>
object
var myTuple = ConvertListToTuple(myList); if (myTuple is Tuple<int, string> typedTuple) { Console.WriteLine(typedTuple.Item1); Console.WriteLine(typedTuple.Item2); }
通过反射自动匹配对应参数数量的Tuple.Create方法,避免手动写分支,适合长度不固定的场景:
public static object ConvertListToTuple(List<object> list) { if (list.Count == 0) throw new ArgumentException("列表不能为空", nameof(list)); if (list.Count > 8) throw new ArgumentException("列表长度超出Tuple支持的最大直接元素数(8)", nameof(list)); // 找到对应参数数量的Tuple.Create静态方法 var createMethod = typeof(Tuple).GetMethods() .First(m => m.Name == "Create" && m.GetParameters().Length == list.Count); // 调用方法并返回Tuple对象 return createMethod.Invoke(null, list.ToArray()); }
内容的提问来源于stack exchange,提问作者Mr.Price
超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起
模型再升级,30秒超长叙事, 模态参考扩容
模型自由,工具不限,最新支持 Deepseek-V4 系列、GLM-5.3 系列
超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列
大模型19元起,Al应用9.9元畅享,新人首购爆款尽享优惠