首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c#如何连接到字典值

c#如何连接到字典值
EN

Stack Overflow用户
提问于 2016-08-16 16:53:08
回答 4查看 203关注 0票数 3

我正在使用一段代码,它获取合同列表并将它们添加到字典中……

代码语言:javascript
复制
Dictionary<int, decimal> contractDictionary = new Dictionary<int, decimal>();

然后填充...

sales是一个传递到方法中的变量,数据库中有一个sales表(SalesTbl),该变量的类型为SalesTbl...

代码语言:javascript
复制
public void UpdateSales(SalesTbl sales)
{
...
   if (!contractDictionary.ContainsKey(sales.ContractId))
   {
     contractDictionary.Add(sales.ContractId, 0);
   }
...
}

然后,代码遍历合同字典以创建电子邮件正文。

代码语言:javascript
复制
foreach (var item in contractDictionary)
{
   emailBody += string.Format("Contract {0} total sales cost: {1}", item.Key, item.Value);
}

我的问题是,这是将合同id和销售成本一起显示在电子邮件中,收到电子邮件的用户将无法理解合同id,我需要将其替换为合同名称。这在相同的方法中也是可用的(forms具有contract名称,也具有contractid)。

代码语言:javascript
复制
List<ContractForms> forms = GetFormsForSalesUpdate(update);

有没有一种方法可以很容易地将这两种方式结合在一起,或者通过某种方式从'forms‘中获取合同名称,以显示它来代替合同id?

我希望这一切都说得通,

提前感谢:)

EN

回答 4

Stack Overflow用户

发布于 2016-08-16 17:29:56

这是使用from-where-select的一种方法:

代码语言:javascript
复制
var result = from f in forms
             from d in contractDictionary
             where f.contractid == d.Key
             select string.Format("Contract {0} total sales cost: {1}", f.contractname, d.Value);
emailbody = string.Join(Environment.NewLine, result);
票数 1
EN

Stack Overflow用户

发布于 2016-08-16 16:59:43

代码语言:javascript
复制
List<ContractForms> forms = GetFormsForSalesUpdate(update);
foreach (var item in contractDictionary)
{
    var form = forms.Where(f => f.ContractID == item.Key).FirstOrDefault(); 
    emailBody += string.Format("Contract {0} total sales cost: {1}", form.ContractName, item.Value);
}
票数 0
EN

Stack Overflow用户

发布于 2016-08-16 17:00:18

您可以使用一个字典,关键字为ContractID,值为Tuple<decimal, string>,其中string是contract的名称。要添加到Dictionary<int, Tuple<decimal, string>>,请使用以下命令:contractDictionary.Add(sales.ContractId, new Tuple<decimal, string>(0, sales.ContractName));。或者只使用对象SalesTbl作为值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38970486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档