【发布时间】:2014-01-24 02:51:34
【问题描述】:
我的任务是解决别人制作的 C# 应用程序中的一些问题(有人离开了公司),我并不是一个真正合格的 C# 程序员,这只是一种爱好,所以我有点坚持以下几点。
var JobQuery = (from datavalue in dc.JobInformations
where datavalue.JobOpen != 20
select new
{
datavalue.JobID,
datavalue.CompanyName,
datavalue.Contact,
datavalue.Date,
datavalue.HireOrSale,
datavalue.JobOpen,
datavalue.Notes
}
);
var JobList = JobQuery.ToList();
无论如何,我需要获取列表并循环遍历它,我可以使用以下方法:
foreach (var item in JobList){
if (item.HireOrSale = 1) {
item.HireOrSale = "Sale";
}
yield return item;
}
正如您所看到的,我想要做的是将作为 INT 存储的 Hire 或 Sale 更改为字符串以便在前端更好地阅读,我无法将字符串转换为 int,这是我得到的地方卡住。有没有办法我可以说在循环中构建另一个列表,以允许我为每个列表定义数据类型以防万一?或者有没有办法直接更改项目数据类型?
使用:
var JobList = (from datavalue in dc.JobInformations
where datavalue.JobOpen == 1
select new
{
JobID = datavalue.JobID,
CompanyName = datavalue.CompanyName,
Contact = datavalue.Contact,
Date = datavalue.Date.ToShortDateString(),
HireOrSale = datavalue.HireOrSale == 2 ? "Service" :
datavalue.HireOrSale == 0 ? "Hire" :
datavalue.HireOrSale == 1 ? "Sale" : "",
JobOpen = datavalue.JobOpen == 1 ? "Awaiting Quote" :
datavalue.JobOpen == 2 ? "Quoted" :
datavalue.JobOpen == 3 ? "PO Recieved" :
datavalue.JobOpen == 4 ? "Goods On Order" :
datavalue.JobOpen == 5 ? "Goods Delivered" :
datavalue.JobOpen == 6 ? "Job Complete" :
datavalue.JobOpen == 20 ? "Job Cancelled" : "",
Notes = datavalue.Notes
}
);
【问题讨论】:
-
如果
HireOrSale的值数量有限且数量有限,我将为它创建一个enum并使用枚举的整数值来获取枚举名称(即调用ToString()在枚举 value).