/// <summary>
/// 将图纸目录中图名相同的记录合并,图号取相同部分,折合A1和张数相加
/// </summary>
/// <param name="selFrameAttInfos"></param>
private void MergeSameDwgName(List<List<FrameAtt>> selFrameAttInfos)
{
for (int i = 0; i < selFrameAttInfos.Count; i++)
{
for (int j = i + 1; j < selFrameAttInfos.Count; j++)
{
string dwgName1 = string.Empty;
foreach (FrameAtt item in selFrameAttInfos[i])
{
if (item.Tag == GlobalData.FrameDefaultAttMge.GetStandardLabel("DrawingName"))
{
dwgName1 = item.Value;
break;
}
}
string dwgName2 = string.Empty;
foreach (FrameAtt item in selFrameAttInfos[j])
{
if (item.Tag == GlobalData.FrameDefaultAttMge.GetStandardLabel("DrawingName"))
{
dwgName2 = item.Value;
break;
}
}
if (dwgName1 == dwgName2)
{
double toA1 = 0;
int actualPage = 0;
foreach (FrameAtt item in selFrameAttInfos[i])
{
if (item.Tag == GlobalData.FrameDefaultAttMge.GetOtherLabel("ToA1"))
{
toA1 = Convert.ToDouble(item.Value);
}
else if (item.Tag == GlobalData.FrameDefaultAttMge.GetOtherLabel("ActualPage"))
{
actualPage = Convert.ToInt32(item.Value);
}
}
foreach (FrameAtt item in selFrameAttInfos[j])
{
if (item.Tag == GlobalData.FrameDefaultAttMge.GetOtherLabel("ToA1"))
{
item.Value = (Convert.ToDouble(item.Value) + toA1).ToString();
}
else if (item.Tag == GlobalData.FrameDefaultAttMge.GetStandardLabel("DrawingCode"))
{
string dwgCode = item.Value;
int index = dwgCode.IndexOf('-');
if (index>0)
{
item.Value = dwgCode.Substring(0, index);
}
}
else if (item.Tag == GlobalData.FrameDefaultAttMge.GetOtherLabel("ActualPage"))
{
item.Value = (Convert.ToInt32(item.Value) + actualPage).ToString();
}
}
selFrameAttInfos.Remove(selFrameAttInfos[i]);
j--;
}
}
}
}
C# 数据集合筛选。将某个属性相同的数据记录合并,并对这些记录的另一个属性进行修改
最新推荐文章于 2023-06-14 12:26:49 发布