首页 / C# / c#-在Linq中将两个属性分组为一个
c#-在Linq中将两个属性分组为一个
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-在Linq中将两个属性分组为一个,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1470字,纯文字阅读大概需要3分钟。
内容图文
![c#-在Linq中将两个属性分组为一个](/upload/InfoBanner/zyjiaocheng/676/91fd6761605541f19bbda0ed087ad8d5.jpg)
我有以下课程
public class Booking
{
public string Group { get; set; }
public BookingType Type { get; set; }
public BookingStatus Status { get; set; }
public InvoiceFreq { get; set; }
public InvoiceLevel { get; set; }
}
我需要将它们按Linq中的所有属性分组,以便最后两个属性在分组结果中形成一个新字段.
像这样:
Group Type Status InvoiceType
-------------------------------------------
Group1 Online New Daily-Single
Group2 Phone Accepted Daily-Single
Group3 Store Accepted Weekly-Single
Group3 Store Accepted Weekly-Bulk
在这里,InvoiceFreq将为每天/每周,并且InvoiceLevel =单次或批量.
我到目前为止的查询是这样的:
var query = from b in Bookings
group b by new
{
b.Group,
b.Type,
b.Status,
b.InvoicingFrequency,
b.InvoicingLevel
} into bookingGroup
select new BookingSummaryLine()
{
Group = bookingGroup.Key.UserGroup,
Type = bookingGroup.Key.UserGroup,
Status = bookingGroup.Key.FinancialStatus,
InvType = String.Format({0}-{1},bookingGroup.Key.InvoicingFrequency, bookingGroup.Key.InvoicingLevel
};
当然,由于两个属性分别处于匿名类型,因此这不会产生期望的结果.
在Linq中有什么方法可以做到这一点?
解决方法:
这应该工作:
var query = from b in Bookings
group b by new
{
b.Group,
b.Type,
b.Status,
InvType = String.Format({0}-{1},b.InvoicingFrequency, b.InvoicingLevel)
} into bookingGroup
select new BookingSummaryLine()
{
Group = bookingGroup.Key.UserGroup,
Type = bookingGroup.Key.UserGroup,
Status = bookingGroup.Key.FinancialStatus,
InvType = bookingGroup.Key.InvType
};
内容总结
以上是互联网集市为您收集整理的c#-在Linq中将两个属性分组为一个全部内容,希望文章能够帮你解决c#-在Linq中将两个属性分组为一个所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。