Tag: list

Fluent Nhibernate – 映射列表会导致NullReferenceException?

我有以下类和流畅的映射: public class A { public virtual int Id { get; private set; } public virtual string MyString { get; set; } public virtual IList MyChildren { get; set; } } public class B { public virtual int Id { get; private set; } public virtual DateTime TheDate { get; set; } } public sealed […]

由lambda排除另一个集合

这是我的类型: public class myType { public int Id { get; set; } public string name { get; set; } } 这种类型有2个集合: List FristList= //fill ; List Excludelist= //fill; 我需要从FristList排除Excludelist ,如下所示: List targetList = FirstList.Where(m=>m.Id not in (Excludelist.Select(t=>t.Id)); 关于上述查询的确切lambda表达式,您有什么建议?

使用linq对嵌套列表进行分组

我有一个嵌套的对象列表。 我需要通过identifierA和Sum对其数字属性进行分组,嵌套列表应分别分组: public class TypeA { public String identifierA{ get; set; } public Int32 number { get; set; } public List nestedList { get; set; } } public class TypeB { public String identifierB { get; set; } public Int32 otherNumber { get; set; } } 所以我期待这样的事情: var List groupedList = (from a in TypeAList […]

C#Generic List转换为实现List 的类

以下代码产生该问题 无法将类型’System.Collections.Generic.IEnumberable<DataField>’隐式转换为’DataFields’。 存在显式转换(您是否错过了演员?)。 我该如何解决这个问题? 我究竟做错了什么? public class DataFields : List { } public abstract class DataField { public string Name { get; set; } } public class DataField : DataField { public T Value { get; set; } } public static DataFields ConvertXML(XMLDocument data) { DataFields result = (from d in XDocument.Parse(data.OuterXML).Elements() select new DataField […]

List <List > Remove()方法

我想在列表列表中使用Remove()方法,但它对我不起作用。 简单的例子应该说一切: List<List> list = new List<List>(); list.Add(new List { 0, 1, 2 }); list.Add(new List { 1, 2 }); list.Add(new List { 4 }); list.Add(new List { 0, 1, }); list.Remove(new List { 1, 2 }); 如果我使用RemoveAt(1)它工作正常但删除()没有。 显然,此代码返回false的原因相同: List l1 = new List(); List l2 = new List(); l1.Add(1); l2.Add(1); bool b1 = l1 […]

如何比较两个`List 和List `?

如何将两个List与List ? 因此,如果Value具有不同的值,则应该可以检查它。 (我知道我们可以使用foreach ……但是我想要LINQ解决方案/) 谢谢! public sealed class MyObject1 { public string Name { get; set; } public string Value { set; get; } public Guid ID { get; set; } } public sealed class MyObject2 { public string Name { get; set; } public string Value { set; get; } public Guid ID […]

如何将双打列表中的所有元素相乘?

如何将list 的内容相乘? List mult=new List{3, 5, 10}; 到目前为止我有: double r=0.0; for(int i=0;i<mult.Count;i++) { r=mult[i]*mult[(i+1)]; }

根据键c#合并两个列表

我有课程奖励,我保持每场比赛的用户资金。 我有两个列表,我需要联系。 我在下面写下样本列表和所需的结果。 public class Reward { public int Game { get; set; } public int User { get; set; } public int Money { get; set; } public Reward Merge(Reward p) { return new Reward { Game = this.Game, User = this.User, Money = this.Money + p.Money}; } } IList list1 = new List(); […]

List .Enumerator IEnumerator.Reset()方法实现

尽管事实上, 永远不应该使用IEnumerator.Reset方法,但我在List发现了方法实现的奇怪行为。 无论您如何检查.NET Framework源代码(使用参考源和ILSpy进行尝试),该方法都实现如下: void System.Collections.IEnumerator.Reset() { if (version != list._version) { ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumFailedVersion); } index = 0; current = default(T); } 但是,看起来根本没有调用该方法! 考虑一下代码: var list = new List(1) { 3 }; using (var e = list.GetEnumerator()) { Console.WriteLine(e.MoveNext()); Console.WriteLine(e.Current); ((IEnumerator)e).Reset(); Console.WriteLine(e.MoveNext()); Console.WriteLine(e.Current); } 很明显,它应该打印True和3两次。 而不是结果 True 3 False 0 我错过了任何简单的解释?

如何从声明为IEnumerable 的方法/属性中安全地返回List ?

假设我使用List字段支持IEnumerable属性,因此我可以在类中修改集合,但它是以只读方式公开公开的。 public class Foo { private List _bar = new List(); public IEnumerable Bar { get { return _bar; } } } 但是使用这样的代码,您可以轻松地将从属性中检索到的对象转换回List并对其进行修改: var foo = new Foo(); var bar = (List)foo.Bar; bar.Add(10); 问题是: 什么是最好的(最好的可读性,最容易编写,没有性能损失)避免这种情况的方法? 我可以提出至少4个解决方案,但不是它们是完美的: foreach和yield return : public IEnumerable Bar { get { foreach (var item in _bar) yield return item; } } […]