加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – LINQ indexOf一个特定的条目

发布时间:2020-12-15 06:17:46 所属栏目:百科 来源:网络整理
导读:我有一个MVC3 C#.Net网络应用程序.我有以下字符串数组. public static string[] HeaderNamesWbs = new[] { WBS_NUMBER,BOE_TITLE,SOW_DESCRIPTION,HARRIS_WIN_THEME,COST_BOGEY }; 我想在另一个循环中找到给定条目的索引.我以为这个列表会有一个IndexOf.我找
我有一个MVC3 C#.Net网络应用程序.我有以下字符串数组.
public static string[] HeaderNamesWbs = new[]
                                       {
                                          WBS_NUMBER,BOE_TITLE,SOW_DESCRIPTION,HARRIS_WIN_THEME,COST_BOGEY
                                       };

我想在另一个循环中找到给定条目的索引.我以为这个列表会有一个IndexOf.我找不到它有任何想法吗?

解决方法

那么你可以使用Array.IndexOf:
int index = Array.IndexOf(HeaderNamesWbs,someValue);

或者只是将HeaderNamesWbs声明为IList< string>而是 – 如果你想要的话,它仍然可以是一个数组:

public static IList<string> HeaderNamesWbs = new[] { ... };

请注意,我不鼓励您将数组暴露为public static,甚至公开静态readonly.你应该考虑ReadOnlyCollection:

public static readonly ReadOnlyCollection<string> HeaderNamesWbs =
    new List<string> { ... }.AsReadOnly();

如果你想要这个IEnumerable< T>,你可以使用:

var indexOf = collection.Select((value,index) => new { value,index })
                        .Where(pair => pair.value == targetValue)
                        .Select(pair => pair.index + 1)
                        .FirstOrDefault() - 1;

(1和-1是这样的,它将返回-1为“missing”,而不是0)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读