今天早些时候(在这里的帮助下)我们创建了以下代码。
var sLines = File.ReadAllLines("//dnc/WaterJet/MTI-WJ/" + cboPartProgram.Text)
.Where(s => !s.StartsWith("'") && s.Contains("S"))
.Select(s => new
{
SValue = Regex.Match(s, "(?<=S)[\\d.]*").Value
})
.ToArray();
foreach (var lines in sLines)
{
double sTime = double.Parse(lines.SValue);
}
在app中进一步向下,从列表中填充datagridview,列表是由sql语句的结果创建的列表。
foreach (WjDwellOffsets offset in dwellTimes)
{
origionalDwellOffsets.Add(offset.dwellOffset);
dgvDwellTimes.Rows.Add(new object[] { offset.positionId, sTime, offset.dwellOffset, 0, offset.dwellOffset, "Update", (offset.dateTime > new DateTime(1900, 1, 1)) ? offset.dateTime.ToString() : "" });
DataGridViewDisableButtonCell btnCell = ((DataGridViewDisableButtonCell)dgvDwellTimes.Rows[dgvDwellTimes.Rows.Count - 1].Cells[5]);
btnCell.Enabled = false;
}
正如您所看到的,我只是将sTime
放在那里以显示我需要的地方。但显然这不会起作用,1因为它已经脱离了背景,而且我试图将其融入其中的任何方式都会使所有内容翻倍或更糟,因为我在文件中循环播放,但之后我就是这样做了。循环浏览添加到数据网格中的内容等。如何将sTime
结果(80行)与数据视图中填充的列表中的80行合并?我不确定如何将sTime
的结果合并到网格中而不会搞砸它。
答案 0 :(得分:0)
double sTime ;
var sLines = File.ReadAllLines("//dnc/WaterJet/MTI-WJ/" + cboPartProgram.Text)
.Where(s => !s.StartsWith("'") && s.Contains("S"))
.Select(s => new
{
SValue = Regex.Match(s, "(?<=S)[\\d.]*").Value
})
.ToArray();
foreach (var lines in sLines)
{
sTime = double.Parse(lines.SValue);
}
foreach (WjDwellOffsets offset in dwellTimes)
{
origionalDwellOffsets.Add(offset.dwellOffset);
dgvDwellTimes.Rows.Add(new object[] { offset.positionId, sTime, offset.dwellOffset, 0, offset.dwellOffset, "Update", (offset.dateTime > new DateTime(1900, 1, 1)) ? offset.dateTime.ToString() : "" });
DataGridViewDisableButtonCell btnCell = ((DataGridViewDisableButtonCell)dgvDwellTimes.Rows[dgvDwellTimes.Rows.Count - 1].Cells[5]);
}
btnCell.Enabled = false;
答案 1 :(得分:0)
如果我理解你的问题,你正在寻找:
由于两个循环具有相同的计数器限制(在您的情况下为80),并且它们似乎不需要分离,您可以简单地将它们合并到一个正常的for
循环中。
double stime;
for (int i = 0; i < sLines.Count(); i++)
{
sTime = double.Parse(sLines[i].SValue); // Or sLines.ElementAt(i)
origionalDwellOffsets.Add(dwellTimes[i].dwellOffset); // Or dwellOffset.ElementAt(i)
dgvDwellTimes.Rows.Add(new object[] { dwellTimes[i].positionId, sTime, dwellTimes[i].dwellOffset, 0, dwellTimes[i].dwellOffset, "Update", (dwellTimes[i].dateTime > new DateTime(1900, 1, 1)) ? dwellTimes[i].dateTime.ToString() : "" });
DataGridViewDisableButtonCell btnCell = ((DataGridViewDisableButtonCell)dgvDwellTimes.Rows[dgvDwellTimes.Rows.Count - 1].Cells[5]);
}