C# 如果选定单元格位于同一列中,请执行某些操作

C# 如果选定单元格位于同一列中,请执行某些操作,c#,winforms,datagridview,C#,Winforms,Datagridview,仅当选定的DGvCell位于同一列中时,我才想执行以下操作: foreach (DataGridViewCell c in dgvC.SelectedCells) if (c.ColumnIndex is the same) // how to say this ? 像这样的基本方法应该会奏效: Boolean allCells = true; int colIndex = dgvC.SelectedCells[0].ColumnIndex;

仅当选定的DGvCell位于同一列中时,我才想执行以下操作:

foreach (DataGridViewCell c in dgvC.SelectedCells)
if (c.ColumnIndex is the same) // how to say this ?

像这样的基本方法应该会奏效:

        Boolean allCells = true;
        int colIndex = dgvC.SelectedCells[0].ColumnIndex;

        foreach (DataGridViewCell c in dgvC.SelectedCells)
        {
            if(c.ColumnIndex != colIndex)
            {
                allCells = false;
            }
        }

        if(allCells)
        {
            //do stuff here
        }

看到有一段时间没有回复,这是我的解决方案,我认为它不够优化,但我认为它会做的工作

int columnIndex = dgvC.SelectedCells[0].ColumnIndex;
bool sameCol = true;
for(int i=0;i<dgvC.SelectedCells.Count;i++)
    {
        if(dgvC.SelectedCells[i].ColumnIndex != columnIndex)
         {
           sameCol = false;
           break;
          }
     }
 if (sameCol)
     {
       MessageBox.Show("Same Column");
     }
  else
     {
       MessageBox.Show("Not same column");
     }
int columnIndex=dgvC.SelectedCells[0]。columnIndex;
bool-sameCol=true;
对于(int i=0;i r.ColumnIndex!=ColumnIndex))
{
//不一样
}
其他的
{
//同样的
}

您可以使用GroupBy来确保单元格来自同一列

if(dgvC.SelectedCells.Cast<DataGridViewCell>()
            .GroupBy(c => c.ColumnIndex).Count() == 1)
{
   foreach (DataGridViewCell c in dgvC.SelectedCells)
     //your code
}
if(dgvC.SelectedCells.Cast()
.GroupBy(c=>c.ColumnIndex).Count()==1)
{
foreach(dgvC中的DataGridViewCell c.SelectedCells)
//你的代码
}
试试这个

for (int i=0; i < dgvC.SelectedCells.Count; i++ )
{
    int currentCellColumnIndex = dgvC.SelectedCells[i].ColumnIndex;
    for (int j=i+1; j < dgvC.SelectedCells.Count-1; j++) 
    {
         if(currentCellColumnIndex ==  dgvC.SelectedCells[j])
         {
            //Same column 
            //dgvC.SelectedCells[i] and all dgvC.SelectedCells[j] have same column

         } 
    }
}
for(int i=0;i
for (int i=0; i < dgvC.SelectedCells.Count; i++ )
{
    int currentCellColumnIndex = dgvC.SelectedCells[i].ColumnIndex;
    for (int j=i+1; j < dgvC.SelectedCells.Count-1; j++) 
    {
         if(currentCellColumnIndex ==  dgvC.SelectedCells[j])
         {
            //Same column 
            //dgvC.SelectedCells[i] and all dgvC.SelectedCells[j] have same column

         } 
    }
}