Tag: union

联合两个自定义类会返回重复项

我有两个自定义类, ChangeRequest和ChangeRequests ,其中ChangeRequests可以包含许多ChangeRequest实例。 public class ChangeRequests : IXmlSerializable, ICloneable, IEnumerable, IEquatable { … } public class ChangeRequest : ICloneable, IXmlSerializable, IEquatable { … } 我试图做两个ChangeRequests实例的联合。 但是,似乎没有删除重复项。 我的MSTestunit testing如下: var cr1 = new ChangeRequest { CRID = “12” }; var crs1 = new ChangeRequests { cr1 }; var crs2 = new ChangeRequests { cr1.Clone(), new ChangeRequest […]

struct中的对齐错误/非对象字段

我对我的结构使用以下定义: [StructLayout(LayoutKind.Explicit)] public struct NetworkMessage { [FieldOffset(0)] public MessageType Type; [FieldOffset(4)] public bool GatewayMessage; //AuthenticationRequest [FieldOffset(5)] public char[] AuthenticationUsername; //20 charachters long [FieldOffset(13)] public byte[] AuthenticationPasswordHash; // 16 bytes long //Authntication result [FieldOffset(5)] public bool AuthenticationSuccess; [FieldOffset(6)] public char[] AuthenticationMessage; } 但是,当我尝试使用此类型时,我收到此错误消息: System.TypeLoadException:无法从程序集中加载类型“NetworkMessage”,因为它包含偏移量为5的对象字段,该字段未正确对齐或由非对象字段重叠。 非对象字段是指一个值是一个值,一个是引用吗? 我可以不混用这些吗? 任何帮助深表感谢。 谢谢,Venatu 编辑:抱歉,我应该更加明确,因为我打算将其作为一种伪结合。 重叠是字段是有意允许我使用一个结构作为多种类型的消息,使缓冲和传递系统更容易。 对不起任何困惑

EF Code First – Linq to Entities Union EqualityComparer

我有两个IEnumerable集合,我想结合。 一个选择与特定类别相关联的新闻对象。 当用户按类别过滤时,我还希望显示已标记有其他类别的新闻文章。 所以我有另一个查询返回标记有特定子类别的新闻对象。 现在我想结合两个集合,删除重复项(作为与主类别相关联的新闻文章,也可以用第二类标记)。 var catNews = model.Category.News.SelectMany(n => n.News); //get news article associated to the category var tagNews = _nr.GetNews(model.Category.relatedCategoryName); //this selects news by tags – which I want as the related category name model.News = catNews.Union(tagNews).OrderByDescending(p => p.Date); //union the two collections 但是,model.News现在包含两篇相同的新闻文章,我不确定为什么联盟应该使用默认的相等比较器? 我在这里做错了吗? 我使用的是EF Code First,我的主键是新闻ID。 我解决这个问题的方法是将一个catNews id列表传递给GetNews函数并排除它们 if (excludeIds != […]

如何结合两个数据表并对结果进行排序

问:如果我有两个这样的DataTable: Dt1 (emp_num,emp_name,type) Dt2 (emp_num,emp_name,type) 我想联合他们并通过emp_name订购结果。

C#linq联合问题

有人可以解释一下LINQ中的Union是如何工作的吗? 它被告知它合并两个序列并删除重复。 但我可以以某种方式自定义重复删除行为 – 假设我希望在重复或the first sequence情况下使用the second sequence中的元素。 或者即使我希望以某种方式在结果序列中组合这些值? 应该如何实施? 更新 我想我错误地描述了这个问题,让我们说我们有一些价值: class Value { String name Int whatever; } 并且使用的比较器执行x.name == y.name检查。 让我们说有时我知道我应该从第二个序列中取出元素,因为它是whatever字段比第一个序列的whatever字段更新/更好。 无论如何,我会使用sequence1.Union(sequence2)或sequence2.Union(sequence1)方法的变体。 谢谢

将C转换为C#

我正在尝试将此C代码转换为C#,是否有C#等效于C union typedef? struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; typedef struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; struct { u_short s_w1,s_w2; } S_un_w; u_long S_addr; } S_un; } IN_ADDR, *PIN_ADDR, FAR *LPIN_ADDR; 谢谢。

哪个更快:Union或Concat?

我不关心元素的顺序。 http://msdn.microsoft.com/en-us/library/system.linq.enumerable.union.aspx http://msdn.microsoft.com/en-us/library/bb302894.aspx

有没有更整洁的linq方式来’联合’单项?

如果我有两个序列并且我想要将它们一起处理,我可以将它们联合起来然后我们去。 现在让我说我想在两个序列之间处理一个项目。 我可以通过创建一个包含单个项目的数组来获取它,但是有更简洁的方法吗? 即 var top = new string[] { “Crusty bread”, “Mayonnaise” }; string filling = “BTL”; var bottom = new string[] { “Mayonnaise”, “Crusty bread” }; // Will not compile, filling is a string, therefore is not Enumerable //var sandwich = top.Union(filling).Union(bottom); // Compiles and works, but feels grungy (looks like it might […]

如何将sql union转换为linq

我有一个使用union的以下Transact SQL查询。 我需要一些关于如何在LINQ中看起来的指针,即一些例子会很好或者如果有人可以在linq中推荐一个关于UNIONS的好教程。 select top 10 Barcode, sum(ItemDiscountUnion.AmountTaken) from (SELECT d.Barcode,SUM(AmountTaken) AmountTaken FROM [Aggregation].[dbo].[DiscountPromotion] d GROUP BY d.Barcode UNION ALL SELECT i.Barcode,SUM(AmountTaken) AmountTaken FROM [Aggregation].[dbo].ItemSaleTransaction i group by i.Barcode) ItemDiscountUnion group by Barcode 请注意,原始SQL正在合并 2个选择NOT连接它们。 我需要知道如何合并结果,即删除重复项,并根据条形码对存在重复的行数值求和。

将List <List >转换为C#中的List

我有一个List<List> 。 我想将它转换为List ,其中每个int都是唯一的。 我想知道是否有人使用LINQ有一个优雅的解决方案。 我希望能够使用Union方法,但每次都会创建一个新的List 。 所以我想避免做这样的事情: List allInts = new List(); foreach(List list in listOfLists) allInts = new List(allInts.Union(list)); 有什么建议? 谢谢!