使用Linq的First找到数组中的一条记录,能否得到它在数组中的索引号?

中文命名法 2018-04-20 11:37:14
数组[0]="a";;
数组[1]="b";
数组[2]="c";
数组[3]="d";
数组[4]="e";
var 目标=数组.First(f=>f=="c");
然后能得到它的索引号吗?也就是2
...全文
1202 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2018-04-24
  • 打赏
  • 举报
回复
what if you have duplicate value?
void Main()
{
	 List<User> list = new List<User>()
		{
			new User(){id=1,name="1"},
			new User(){id=2,name="2"},
			new User(){id=3,name="3"},
			new User(){id=4,name="4"},
			new User(){id=5,name="5"},
			new User(){id=6,name="6"},
			new User(){id=7,name="7"},
			new User(){id=8,name="8"},
			new User(){id=9,name="6"}
		};
 
	string name = "6";
	
	var query = list.Select((value,index)=>	new {Index = index, Value = value})
					.Where(user=>user.Value.name==name)
					.Select(user=>user.Index)
					.ToArray();
 
}
public class User
		{
			public int? id { get; set; }
			public virtual string name { get; set; }
			public virtual string add { get; set; }
			public User MyClone()
			{
				return (User)this.MemberwiseClone();
			}
		}
正怒月神 2018-04-20
  • 打赏
  • 举报
回复
或者,你可以直接找下标,而不需要返回的对象 var q = list.FindIndex(x => x.id == 3); Console.WriteLine(q);
正怒月神 2018-04-20
  • 打赏
  • 举报
回复
static List<User> list = new List<User>()
        {
            new User(){id=1,name="1"},
            new User(){id=2,name="2"},
            new User(){id=3,name="3"},
            new User(){id=4,name="4"},
            new User(){id=5,name="5"},
            new User(){id=6,name="6"},
            new User(){id=7,name="7"},
            new User(){id=8,name="8"},
        };

        
        public class User
        {
            public int? id { get; set; }
            public virtual string name { get; set; }
            public virtual string add { get; set; }
            public User MyClone()
            {
                return (User)this.MemberwiseClone();
            }
        }
        
        static void Main(string[] args)
        {
            //转换为数组
            var q = list.ToArray();

            var v = q.Select((x, i) => new
            {
                user = x,
                i
            }).First(x => x.user.id == 3);

            Console.WriteLine(v.i);

            Console.ReadLine();
        }

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧