Tag: list

从包含具有数组元素的类的列表中删除重复项

我有一个包含类中对象的列表。 包含各种项目的类,包括int和double数组。 这堂课看起来像这样。 public class NewChildren { public double[] fitnessValue{get;set;} public int[] locationScheme{get;set;} public double crowdingDistance{get;set;} } 由于列表可能包含重复项,我有兴趣删除它们。 在网络上,我看到了一些基于Linq的解决方案,它们使用了Distinct()和GroupBy()方法。 但是,似乎这些方法不起作用,因为对象中有数组(MSVS2008不会给出任何错误,但也没有删除任何项)。 任何建议(包括参考或代码)都非常感谢。 提前致谢。

从列表中删除匹配项的更好方法

在c#中,当我想从列表中删除一些项目时,我会按以下方式执行此操作, List itemsToBeRemoved = new List(); foreach(Item item in myList) { if (IsMatching(item)) itemsToBeRemoved.Add(item); } foreach(Item item in itemsToBeRemoved) { myList.Remove(item); } 有没有更好的方法呢?

在运行时使用Type变量创建Type类型

我正在尝试简化我在一个函数中创建几个变量的方法,这个变量针对不同的类型和不同的动作重复,最终我将迁移到一个可以处理多种类型的函数,但我正在分阶段进行。 我希望能够在其类型而不是列表中创建对象列表,而无需在任何地方复制/粘贴对象类型。 我曾希望通过一些非常简单的事情来实现这一目标 Type t = typeof(LinkAddy); var x = List(); 但这不编译。 然后我尝试了以下答案提供的另一种解决方案: 存储变量类型并使用它在运行时创建集合 static IList createGenericList(Type typeInList) { var genericListType = typeof(List).MakeGenericType(new[] { typeInList }); return (IList)Activator.CreateInstance(genericListType); } 和 static List createGenericList() { List genericListType = new List(); return genericListType; } 所以这里有不同的方法和结果: Type ThisType = typeof(LinkAddy); // The normal list method, means I have […]

保持事件Longlistselector

HEJ 我想创建一个标准的holdevent。 当您持有元素时,会出现一些您可以选择的选项,如新列表。 你是如何创造这个的,它只是简单地用弹出窗口完成还是有更聪明的方法? 额外 找到答案后,请参阅下面的答案,一些不错的信息是: 将上下文创建放在hold事件中。 然后,您可以根据项目更改为不同的上下文菜单。 您可以通过以下方式获取所持有的项目 private void StackPanel_Hold(object sender, GestureEventArgs e) { ItemViewModel itemViewModel = (sender as StackPanel).DataContext as ItemViewModel; string t = itemViewModel.LineOne; } 和 一个易于实现的好链接也是下面的youtube链接,在这里复制: Youtube

如何从List 中删除所有对象,其中object.variable在任何其他object.variable2中至少存在一次?

我无法弄清楚如何编写此代码。 我有一个项目列表,这些项目都有ID。 还有另一个值,我们称之为otherID。 如果otherID为零或null,我们将忽略它。 但是,如果otherID包含列表中另一项的ID,我想从列表中删除该项。 例: item1.ID = 5, item1.otherID = null item2.ID = 6, item2.otherID = 5 item3.ID = 7, item3.otherID = null 所以应该从列表中删除item1,因为它的ID存在于item2的otherID字段中 谁知道我会怎么写这个?

在不使用IComparable 的情况下查找Max / Min元素

说我有以下内容: public Class BooClass { public int field1; public double field2; public DateTime field3; } public List booList; 那么例如如何使用booList.Find()在field3中获取具有最早时间的元素 编辑道歉,我打算公开所有字段以简化示例。 我知道可以在linq中做到这一点,我想知道Find方法是否有简单的单行条件。

删除给定索引处的列表元素

我有一个列表,其中包含一些string类型的项目。 List lstOriginal; 我有另一个列表,其中包含应从第一个列表中删除的id。 List lstIndices; 我试过用RemoveAt()方法完成这项工作, foreach(int indice in lstIndices) { lstOriginal.RemoveAt(indice); } 但是它崩溃并且说我“索引超出范围”。

c#网络适配器列表

我有代码,它使用System.Net和System.Net.NetworkInformation引用,它生成一个我的网络连接名称列表。 一切似乎都很好并且正常工作,但是当我创建一个这样的代码,并将导出的值导出到listbox1项目添加时,我只有一个网络连接名称,但实际上我有四个。 我怎么解决这个问题? private void button1_Click(object sender, EventArgs e) { Adapters obj = new Adapters(); var value = obj.net_adapters(); listBox1.Items.Add(value); } public class Adapters { public string net_adapters() { string value = string.Empty; foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) { value = nic.Name; } return value; } }

为什么IList 。Reverse()不像List ()那样工作。反向

我有List.Reverse()和Reverse(this IEnumerable source) 。 看看代码: // Part 1 List list = new List { 1, 2, 3 }; foreach (int x in list) Console.Write(x); Console.WriteLine(); list.Reverse(); foreach (int x in list) Console.Write(x); Console.WriteLine(); list.Reverse(); // Part2 IList ilist = list; foreach (int x in list) Console.Write(x); Console.WriteLine(); ilist.Reverse(); foreach (int x in ilist) Console.Write(x); Console.WriteLine(); […]

System.Collections.Generic.List 的等于方法……?

我正在创建一个派生自List的类… public class MyList : List {} 我已经覆盖了MyListItem的Equals … public override bool Equals(object obj) { MyListItem li = obj as MyListItem; return (ID == li.ID); // ID is a property of MyListItem } 我想在MyList对象中也有一个Equals方法,它将比较列表中的每个项目,在每个MyListItem对象上调用Equals()。 简单地打电话会很好… MyList l1 = new MyList() { new MyListItem(1), new MyListItem(2) }; MyList l2 = new MyList() { new MyListItem(1), new […]