1

選択したセルのコレクションがあります。複数の列があるため、コレクション内のセルの行インデックスは通常、2、2、2、3、3、3、4、4、4 などの形式になります。

これらのセルの行インデックスのリストを取得したいと思います。

List<int> selectedRows = new List<int>();

List<DataGridViewCell> cellCollection = dGV_model.SelectedCells.Cast<DataGridViewCell>()
                                      .GroupBy(cell => cell.RowIndex)
                                      .Select(cell => cell.First())
                                      .ToList<DataGridViewCell>();
foreach (DataGridViewCell cell in cellCollection)
{
    selectedRows.Add(cell.RowIndex);
}

基本的に、私の質問は、単一の LINQ クエリから int のリストを作成するにはどうすればよいですか? 現在、cellcollection を繰り返し処理して、それらを int のリストに追加する必要があります。

4

2 に答える 2

5
var selectedRows = dGV_model.SelectedCells.Cast<DataGridViewCell>()
                                          .Select(c=>c.RowIndex).Distinct()
                                          .ToList();
于 2013-10-11T08:28:13.750 に答える
0

これはあなたが望むことをするはずです:

var rows = dGV_model.SelectedCells.Cast<DataGridViewCell>()
                            .Select(x=>x.RowIndex).Distinct()
                            .ToList();
于 2013-10-11T08:31:08.950 に答える