How to use LINQ with a 2 dimensional array

前端 未结 5 1475
深忆病人
深忆病人 2020-12-21 08:38

I have a 2-dimensional byte array that looks something like this:

0 0 0 0 1

1 1 1 1 0

0 0 1 1 1

1 0 1 0 1

5条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-21 08:50

    It's hard to work with multidimentional arrays with LINQ, but here's how you could do:

    var arr = new [,] { { 0, 0, 0, 0, 1 }, { 1, 1, 1, 1, 0 }, { 0, 0, 1, 1, 1 }, { 1, 0, 1, 0, 1 } };
    
    var data =
        Enumerable.Range(0, 4)
            .Select(
                row =>
                    new
                    {
                        index = row,
                        count = Enumerable.Range(0, 5).Select(col => arr[row, col]).Count(x => x == 1)
                    })
            .OrderByDescending(x => x.count)
            .Select(x => x.index)
            .First();
    

提交回复
热议问题