优化这段代码if (showMessage("结算成功!是否打印收据?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, "提示") == DialogResult.OK) { DataTable table = new DataTable(); table.Columns.Add("分类", typeof(string)); table.Columns.Add("名称", typeof(string)); table.Columns.Add("数量", typeof(string)); table.Columns.Add("单价", typeof(string)); table.Columns.Add("总价", typeof(string)); var idss = GetSelectedIds().Split(','); foreach (var item in SettLists) { if (idss.Contains(item.Id)) { DataRow row = table.NewRow(); row["分类"] = item.TypeName; row["名称"] = item.ServiceName; row["数量"] = item.SendNum; row["单价"] = item.Price; row["总价"] = item.Total; table.Rows.Add(row); } }
时间: 2024-02-10 11:26:24 浏览: 99
可以对这段代码进行一些优化。首先,可以使用更具有描述性的变量名和方法名。其次,可以使用 LINQ 来简化代码。以下是优化后的代码示例:
```csharp
if (ShowConfirmationMessage("结算成功!是否打印收据?") == DialogResult.OK)
{
DataTable table = new DataTable();
table.Columns.Add("分类", typeof(string));
table.Columns.Add("名称", typeof(string));
table.Columns.Add("数量", typeof(string));
table.Columns.Add("单价", typeof(string));
table.Columns.Add("总价", typeof(string));
var selectedIds = GetSelectedIds().Split(',');
var selectedItems = SettLists.Where(item => selectedIds.Contains(item.Id));
foreach (var item in selectedItems)
{
DataRow row = table.NewRow();
row["分类"] = item.TypeName;
row["名称"] = item.ServiceName;
row["数量"] = item.SendNum;
row["单价"] = item.Price;
row["总价"] = item.Total;
table.Rows.Add(row);
}
}
```
通过使用更具有描述性的变量名和方法名以及简化循环逻辑,代码更易于理解和维护。
阅读全文