我一直负责修复其他人制作的C#应用程序中的某些问题(某人离开了公司),而我并不是真正的合格C#程序员,我有点卡住了以下。C#将LINQ列表(int)项目更改为(字符串)
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存储到一个字符串,以更好地阅读前端,我不能将一个字符串转换为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 ()'在枚举*值*)。 – Tim