我知道C#有 Array.FindAll Array.IndexOf

是否有返回Array.FindAllIndexOfint[]

最佳答案

string[] myarr = new string[] {"s", "f", "s"};

int[] v = myarr.Select((b,i) => b == "s" ? i : -1).Where(i => i != -1).ToArray();

这将返回0、2

如果该值在数组中不存在,则它将返回int [0]。

做一个扩展方法
public static class EM
{
    public static int[] FindAllIndexof<T>(this IEnumerable<T> values, T val)
    {
        return values.Select((b,i) => object.Equals(b, val) ? i : -1).Where(i => i != -1).ToArray();
    }
}

并称它为
string[] myarr = new string[] {"s", "f", "s"};

int[] v = myarr.FindAllIndexof("s");

关于c# - C#Array.FindAllIndexOf其中FindAll IndexOf,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10443461/

10-11 04:39