如何通过列表名称获取Manatee.Trello.ListCollection的索引?
如何通过列表名称获取Manatee.Trello.ListCollection中的索引
你的代码里直接调用IndexOf("Swim Lane")没效果,核心问题在于Trelloboard.Lists是ListCollection类型,里面的每一项都是Manatee.Trello.List对象,而非字符串。IndexOf默认是匹配对象实例,不是对象的名称属性,所以直接传字符串肯定找不到目标索引。
这里给你两种实用的解决思路:
方法一:用LINQ的FindIndex快速定位
借助LINQ的FindIndex方法,传入匹配名称的条件就能直接拿到索引,代码简洁高效:
using System.Linq; // 记得引入LINQ命名空间 var targetIndex = Trelloboard.Lists.FindIndex(list => list.Name == "Swim Lane"); if (targetIndex != -1) { Console.WriteLine($"找到列表的索引:{targetIndex}"); } else { Console.WriteLine("未找到名为'Swim Lane'的列表"); }
这个方法会遍历集合,返回第一个名称匹配的列表索引;如果找不到目标列表,会返回-1,记得要做判断避免后续逻辑出错。
方法二:手动遍历集合查找
如果不想依赖LINQ,也可以自己写循环遍历:
int targetIndex = -1; for (int i = 0; i < Trelloboard.Lists.Count; i++) { if (Trelloboard.Lists[i].Name == "Swim Lane") { targetIndex = i; break; // 找到第一个匹配项就停止遍历 } } if (targetIndex != -1) { Console.WriteLine($"找到列表的索引:{targetIndex}"); } else { Console.WriteLine("未找到名为'Swim Lane'的列表"); }
额外提示
- 注意大小写匹配:如果Trello看板里的列表名称大小写不固定,可以改用
list.Name.Equals("Swim Lane", StringComparison.OrdinalIgnoreCase)来忽略大小写匹配。 - 多同名列表场景:如果看板里有多个同名列表,上面的方法只会返回第一个匹配项的索引。要是需要收集所有匹配的索引,去掉
break,用一个列表存储符合条件的i即可。
内容的提问来源于stack exchange,提问作者cambria
相关产品推荐
相关产品推荐

