【发布时间】:2019-10-10 22:36:31
【问题描述】:
我正在为DisplayFusion 中的任务编写脚本。有一个包含窗口类的数组,我需要第一个。
如何获取System.array的第一个元素不考虑索引类型?
我试过了
String windowClass = BFS.Window.GetClass(myArray[Array.IndexOf(myArray)]);
但这会引发错误
(方法'IndexOf'没有重载,接受1-Arguments)
【问题讨论】:
-
myArray[0]会给你第一个元素。不确定您在这里尝试使用 IndexOf 实现什么,但错误是因为 IndexOf 需要(至少)两个输入值 - 您要搜索的数组和要搜索的值。 docs.microsoft.com/en-us/dotnet/api/… 。 IndexOf 的目的是在数组中查找特定值的第一次出现 - 然后它会告诉您出现在哪个数组索引处。在您的代码中,您没有提供要搜索的特定值。 -
答案在错误信息中:没有接受单个参数的
IndexOf的重载;您需要告诉它 of 什么 的索引(要查找)。因此,IndexOf不是用于检索给定索引的元素,而是用于查找给定元素的索引。 -
那么如何获取第一个索引呢?
-
第一个索引始终为 0。因此
myArray[0]将返回数组中的第一个元素。 docs.microsoft.com/en-us/dotnet/csharp/programming-guide/arrays -
通常当程序员编写 Array 类代码时,他们正在处理互操作。特别是 COM 库并不总是创建第一个索引为 0 的数组,Basic 程序员希望从 1 开始。使用 Array.GetLowerBound()。
标签: c#