相关疑难解决方法(0)

如何获取IEnumerable中元素的索引?

我写了这个:

public static class EnumerableExtensions
{
    public static int IndexOf<T>(this IEnumerable<T> obj, T value)
    {
        return obj
            .Select((a, i) => (a.Equals(value)) ? i : -1)
            .Max();
    }

    public static int IndexOf<T>(this IEnumerable<T> obj, T value
           , IEqualityComparer<T> comparer)
    {
        return obj
            .Select((a, i) => (comparer.Equals(a, value)) ? i : -1)
            .Max();
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道它是否已经存在,是吗?

.net c# linq ienumerable indexof

134
推荐指数
8
解决办法
16万
查看次数

使用LINQ获取c#中的List <>元素位置

我有一个带有数字的List,我想使用LINQ找到最小值(不是值)的位置

例如:{3,1,0,5}输出= 2

c# linq

50
推荐指数
3
解决办法
8万
查看次数

使用Linq获取列表中的对象索引

我是Linq的新手.我有一个Customers table.ID,FullName,Organization,Location是列.我在Sqlite中有一个查询,返回2500条客户记录.我必须从该结果集中找到ID = 150的客户索引.它是一个客户列表.查询的结果集按组织排序.我尝试使用FindIndex和IndexOf但是前者得到错误而后者得到-1.那么,应该怎么做呢?谢谢.

linq indexing list find indexof

39
推荐指数
2
解决办法
5万
查看次数

如何在LINQ查询语言中使用where/index?

是否有可能使用查询语言编写此...而不是方法链?

 notifications.Where((n, index) => n.EventId == m_lastSelectedEventID)
              .Select((n, index) => new {Position = index}).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

谢谢,拉杜

.net c# linq

19
推荐指数
1
解决办法
1万
查看次数

使用C#Linq返回数组中空/空出现的第一个索引

我有一个名为"汽车"的字符串数组

我想得到数组的第一个索引是null,或者存储的值是空的.这是我到目前为止所得到的:

private static string[] Cars;
Cars = new string[10];
var result = Cars.Where(i => i==null || i.Length == 0).First(); 
Run Code Online (Sandbox Code Playgroud)

但是如何获得这种情况的第一个INDEX?

例如:

Cars[0] = "Acura"; 
Run Code Online (Sandbox Code Playgroud)

那么索引应该返回1作为数组中的下一个可用点.

c# linq

9
推荐指数
2
解决办法
1万
查看次数

根据另一个集合对集合进行排序

我有一个文件名集合,其中一部分路径名是一个特定的单词.我可以点这样的集合:

var files = from f in checkedListBox1.CheckedItems.OfType<string>()
            orderby f.Substring(0,3)
            select f;
Run Code Online (Sandbox Code Playgroud)

但是现在,我想在路径名部分按字母顺序排序,而是根据另一个集合给出的特定顺序排序.

所以我们说路径名部分可以是"ATE","DET"和"RTI".我有另一个字符串集合:{"DET","ATE","RTI"}我想用来对文件名进行排序,以便在排序后,文件名首先显示其部分名称为"DET",然后是"ATE" ,然后"RTI".我如何实现这一点 - >需要使用自己的比较器?

c# linq

5
推荐指数
2
解决办法
1834
查看次数

通过使用实体框架获取列表中的行索引

我的清单中有5个数据。

我的清单

所以我想知道,我如何选择ID的行号?

var MyProductId= 135;
var SelectedDataRowNumber = context.SP_MyList.ToList()
                                   .Where(s=>s.Id==MyProductId)
                                   .FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

例如,“我的列表”有5个数据,如下所示,

Id-Name

6,Computer

135,KeyBoard

68,Mouse

98,Telephone

213,Laptop,
Run Code Online (Sandbox Code Playgroud)

MyProductId135因此它与配衬是Keyboard.It行计数数(指数)必须是“1”,因为0是计算机。

如何获得选定的ID的行数(索引)号?

c# entity-framework

4
推荐指数
1
解决办法
1万
查看次数

在linq集合中获取我的Object位置的巧妙方法

我目前有一个名为Week的对象.一周是Season对象的一部分.这个季节可以包含很多周.我想要做的是找到我周的位置(是本赛季的第一周(所以#1)还是第二周(所以#2).

int i = 0;
        foreach ( var w in Season.Weeks.OrderBy(w => w.WeekStarts)){
            if(w.Id == Id){
                return i;
            }
            i+=1;
        }
Run Code Online (Sandbox Code Playgroud)

目前这就是我所拥有的.我按照开始日期在一秒钟内订购周,以确保它们的顺序正确.然后我循环使用它们直到找到与我目前正在查看的那一周相匹配的那一周.并返回我一直在计算的int ..

我觉得应该有一个更简单的linq方式来做到这一点,因为它感觉非常混乱!

c# linq

3
推荐指数
1
解决办法
212
查看次数

如果项目存在于 C#/WPF 中的 ObservableCollection 中,则查找数字的索引

在下面的代码中,我正在检查某个项目是否存在于 an 中ObservableCollection,如果存在,我想获取它的索引,以便我可以将该项目移动到顶部,但我无法弄清楚。

我的对象:

public class RecentFile
{
    public string FileName { get; set; }
    public string DateAdded { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

用于查找项目索引的代码:

if (recentFilesObservableCollection.Any(f => f.FileName == "MyFileName")) {

    foreach (RecentFile file in recentFilesObservableCollection) {
        if (file.FileName == "MyFileName") {
            var x = RecentFilesDataGrid[(recentFilesObservableCollection.IndexOf(file)];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果项目存在,获取索引号的最佳方法是什么?

最终我需要做的是......

  1. 检查项目是否存在
  2. 如果确实将其移至列表顶部

c#

2
推荐指数
1
解决办法
2536
查看次数

获取满足条件的List中元素的索引

说我有一个Point:

public class Point
{
    double X, Y;
}
Run Code Online (Sandbox Code Playgroud)

我想得到List<Point>满足条件的元素索引,例如,Point.X里面有最大值List<Point>.

我如何使用LINQ表达式执行此操作?

c# linq

0
推荐指数
1
解决办法
515
查看次数

LINQ中的FindIndex扩展

我试图找到索引如下.

但是下面的LINQ说没有扩展FindIndex.

foreach (var distinctClassId in distinctClassIds)
{
    var indexes = classComponents.Where(x=> x.ClassId.Equals(distinctClassId)).
                  FindIndex(x => x.Id == Constants.Classes.ClassID.ToString() ||
                   x.Id == Constants.Courses.CoursesID.ToString());
}
Run Code Online (Sandbox Code Playgroud)

c# linq

0
推荐指数
1
解决办法
111
查看次数

标签 统计

c# ×10

linq ×9

.net ×2

indexof ×2

entity-framework ×1

find ×1

ienumerable ×1

indexing ×1

list ×1