首页 > 解决方案 > 根据行中的值获取列索引

问题描述

我想根据包含“TOTAL”的第一行中的值获取列索引。我发现根据行值而不是列来获取列索引是完全不同的。

在此处输入图像描述

我试过了,它显示列索引是 0 但它应该是 19

var badColumns = dt.Rows[0].ItemArray.Where (c => c.ToString().Contains("TOTAL QTY")).Select((c, i) => i).ToArray();

MessageBox.Show(string.Join(",", badColumns));

标签: c#

解决方案


您的问题是您在索引列之前过滤列,您应该这样做:

var badColumns = dt.Rows[0].ItemArray
     .Select((c, i) => new{c,i})
     .Where(x => x.c.ToString().Contains("TOTAL QTY"))
     .Select(x => x.i)
     .ToArray();

MessageBox.Show(string.Join(",", badColumns));

推荐阅读