【问题标题】:Getting the index of a particular item in array获取数组中特定项的索引
【发布时间】:2010-12-08 14:31:21
【问题描述】:

我想检索数组的索引,但我只知道数组中实际值的一部分。

例如,我在数组中动态存储作者姓名,例如“author = 'xyz'”。
现在我想找到包含它的数组项的索引,因为我不知道值部分。

如何做到这一点?

【问题讨论】:

  • 您使用的是Array 还是string []
  • 它是一个字符串[],我想在这里找到一些东西 Array.Indexof(arrFilter, "author") author 不是完整值,而是完整值的一部分

标签: c# arrays


【解决方案1】:

您可以使用FindIndex

 var index = Array.FindIndex(myArray, row => row.Author == "xyz");

编辑:我看到你有一个字符串数组,你可以使用任何代码来匹配,这里有一个简单的示例包含:

 var index = Array.FindIndex(myArray, row => row.Contains("Author='xyz'"));

也许您需要使用regular expression 进行匹配?

【讨论】:

【解决方案2】:
     int i=  Array.IndexOf(temp1,  temp1.Where(x=>x.Contains("abc")).FirstOrDefault());

【讨论】:

    【解决方案3】:

    试试Array.FindIndex(myArray, x => x.Contains("author"));

    【讨论】:

      【解决方案4】:

      只有在您知道要搜索的确切值的情况下,前面的答案才有效 - 问题表明只有部分值是已知的。

      Array.FindIndex(authors, author => author.Contains("xyz"));
      

      这将返回包含“xyz”的第一个项目的索引。

      【讨论】:

        【解决方案5】:

        查找索引扩展

        static class ArrayExtensions
        {
            public static int FindIndex<T>(this T[] array, Predicate<T> match)
            {
                return Array.FindIndex(array, match);
            }
        }
        

        用法

        int[] array = { 9,8,7,6,5 };
        
        var index = array.FindIndex(i => i == 7);
        
        Console.WriteLine(index); // Prints "2"
        

        Here's a fiddle with it.


        奖励:IndexOf 扩展

        我先写了这个,没有正确阅读问题......

        static class ArrayExtensions
        {
            public static int IndexOf<T>(this T[] array, T value)
            {
                return Array.IndexOf(array, value);
            }   
        }
        

        用法

        int[] array = { 9,8,7,6,5 };
        
        var index = array.IndexOf(7);
        
        Console.WriteLine(index); // Prints "2"
        

        Here's a fiddle with it.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-02-27
          • 1970-01-01
          • 2017-01-12
          • 1970-01-01
          • 2021-01-22
          • 2019-06-30
          • 1970-01-01
          相关资源
          最近更新 更多