我有两个清单:
第一个名为_listData
且结构为:
public List<GraphData> _gData = new List<GraphData>();
public struct GraphData
{
public double Temp1;
public double Temp2;
public DateTime Date;
public string Type;
}
第二个数据与第一个数据同时填充(换句话说,它们将具有相同数量的行 - 这很重要因为我想使用Index):
FormA_DataType.GraphDataWithID newData2 = new FormA_DataType.GraphDataWithID();
FormA_DataType.GraphDataWithID();
public struct GraphDataWithID
{
public int IdHeader;
public string Type;
}
信息以这种方式填充:
FormA_DataType.GraphDataWithID newData2 = new FormA_DataType.GraphDataWithID();
FormA_DataType.GraphDataWithID();
public struct GraphDataWithID
{
public int IdHeader;
public string Type;
}
if (!item.Full_File_Name.EndsWith("-B") && !item.Full_File_Name.StartsWith("Load_"))
{
FormA_DataType.GraphData newData = new FormA_DataType.GraphData();
FormA_DataType.GraphDataWithID newData2 = new FormA_DataType.GraphDataWithID();
newData.Date = item.Time;
newData.Temp1 = item.Start_temp;
newData.Temp2 = item.Start_temp;
newData.Type = item.Cycle_Type.Replace("Unknown", "");
newData2.Type = item.Cycle_Type.Replace("Unknown", "");
newData2.IdHeader = item.Id_Tbl_Data_Type_Ro_Header;
_gData.Add(newData);
}
我发送了一个_gData
的表格克隆,用于图表。在那里,用户将通过一些交互更改字段“type”。然后,我比较了我发送给图表的内容以及从图表中收到的内容
public bool CheckForDifferenceListInPointCycle()
{
List<FormA_DataType.GraphData> secondNotFirst = Graph._listData.Except(_gData).ToList();
if (secondNotFirst.Count>0) // there are differences between the lists
{
return true;
}
return false;
}
所以,我的线条与我发送到图表的内容和我从图表中收到的内容之间存在差异。我需要在“newData2”
表中更新这些差异你能想到任何帮助吗?
为了更好地理解:
_gData =
12:45:00 | 140 | 160 | “未知”
12:45:00 | 140 | 180 | “温度”
newData2 =
“未知”| 45
“温度”| 49
_listData
12:45:00 | 140 | 160 | “New1”
12:45:00 | 140 | 180 | “NEW2”
我需要根据索引更新newData2中的“New1”和“New2”。所以,我会:
newData2 =
“New1”| 45
“New2”| 49
最后,问题是:
我需要知道如何创建循环以根据“_gData”中的信息更新表“newData2”。
它类似于this
private void button3_Click(object sender, EventArgs e)
{
if(CheckForDifferenceListInPointCycle())
{
foreach (var x in Graph._listData)
{
var itemToChange = newData2.First(d => d.Type == x.Type).Type = x.Type;
}
}
}