超全模态模型 × Harness 升级,升级解锁 ArkClaw,最新支持 DeepSeek-V4 系列与 GLM-5.1
把方法改成泛型形式,能兼容任意类型的List,编译器会自动推断类型,调用起来直接便捷:
public void _AddListOfObject<T>(string TitleOfDaataGridView, List<T> Values) { _Temp.Columns[0].Name = TitleOfDaataGridView; foreach (object i in Values) { // 原有逻辑无需改动 } }
调用示例:
// 直接传入List<string> _AddListOfObject("字符串列表", new List<string> { "张三", "李四" }); // 直接传入List<int> _AddListOfObject("数字列表", new List<int> { 1, 2, 3 });
C# 4.0及以上支持泛型协变,IEnumerable<out T>属于协变接口,因此List<string>、List<int>都可以隐式转换为IEnumerable<object>(值类型会自动装箱,不影响原有逻辑):
IEnumerable<out T>
List<string>
List<int>
IEnumerable<object>
public void _AddListOfObject(string TitleOfDaataGridView, IEnumerable<Object> Values) { _Temp.Columns[0].Name = TitleOfDaataGridView; foreach (object i in Values) { // 原有逻辑无需改动 } }
这种方式不需要修改调用代码,直接传入各种类型的List即可。
如果不想修改方法签名,可以将目标List转换成List<object>后传入,但会额外创建新集合,存在性能损耗:
List<object>
var strList = new List<string> { "测试1", "测试2" }; // 方式1:通过Cast和ToList转换 _AddListOfObject("标题", strList.Cast<object>().ToList()); // 方式2:通过ConvertAll转换 _AddListOfObject("标题", strList.ConvertAll(item => (object)item));
内容的提问来源于stack exchange,提问作者Mohsen Ilkhani
超全模态模型 × 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元畅享,新人首购爆款尽享优惠