我有一个直接的字符串数组,为什么IndexOf不可用?我的目标是.Net 3.5
由于
答案 0 :(得分:4)
您是在谈论Array.IndexOf方法:
var array = new[] { "a", "b", "c" };
Console.WriteLine(Array.IndexOf(array, "b"));
答案 1 :(得分:1)
可能是因为你假设它是一个实例方法而不是静态方法:
using System;
class Program {
static void Main(string[] args) {
string[] arr = new string[] { "hello", "world" };
int index = Array.IndexOf(arr, "world");
// Not:
//int index = arr.IndexOf("world");
System.Diagnostics.Debug.Assert(index == 1);
}
}
考虑List<string>
而不是数组,List&lt;&gt; .IndexOf()是一种实例方法。
答案 2 :(得分:0)
您认为可以将IndexOf应用为实例方法的原因是某些类型的扩展方法包含了Microsoft对GeoCoordinate类的Array.IndexOf()。
以下内容适用于所有数组:
public static class ExtensionMethods
{
public static int IndexOf(this object[] oa, object o)
{
return Array.IndexOf(oa, o);
}
}
这里有一段代码,展示代码如何变得更清晰 - 以使其依赖于扩展方法类为代价。我故意在其中一个上取消语法糖,这样你就可以并排比较。
int m = Array.IndexOf(II, closestItems[0]);
int n = II.IndexOf(closestItems[1]);