请问,这个Linq查询语句怎么写
List<string> list1 = new List<string>{"张三","李四","张三","王二","小王","小仓","张三","小刘"}
把集合list1中,等于"张三"的元素的索引值,全部装进一个集合,如果行的话,最好还是用list1,把list1清空,把索引值ToString()装进去即可。如果不行,就另外新建一个集合
[解决办法]
- C# code
var result = list1.Select((n, i) => new { name = n, index = i }).Where(x => x.name == "张三").Select(x => x.index).ToList();
[解决办法]
- C# code
List<string> list1 = new List<string> { "张三", "李四", "张三", "王二", "小王", "小仓", "张三", "小刘" }; var name=from m in list1 where m=="张三" select m; list1 = name.ToList();
[解决办法]
- C# code
List<string> list1 = new List<string> { "张三", "李四", "张三", "王二", "小王", "小仓", "张三", "小刘" }; list1 = list1.Select((s, index) => new { s, sindex = index.ToString() }).Where(v => v.s == "张三").Select(x => x.sindex.ToString()).ToList();
[解决办法]
[解决办法]
[解决办法]
这是因为 Select() 方法的一个重载形式就是接受一个 Func<T, int, TOut> 的参数,并且自动将当前元素和序号作为参数传给它。
[解决办法]
[解决办法]
如果觉得(n,i)不好读,其实可以写成非常简单的类似于sql的形式:
- C# code
var index = 0;var result = (from x in list1 let ndx = index++ where x == "张三" select ndx).ToList();
[解决办法]
List<string> list1 = new List<string> { "张三", "李四", "张三", "王二", "小王", "小仓", "张三", "小刘" };
List<string> list2 = list1.Where(t => t.Trim() == "张三").ToList();