Tag: list

将嵌套列表与逻辑结合使用

我正在使用无法序列化嵌套列表的游戏引擎,例如List<List> 。 我需要的是一个快速的解决方案,将多个列表存储在一个列表中。 我即将自己写这个,但我想知道是否已经存在任何解决方案。 是否有任何包装器可以将“虚拟”嵌套列表存储到一个大列表中,同时提供您期望从单独列表中获得的function?

我应该如何从List 的自定义对象中提取不同值的集合?

我有一个对象列表 – 让我们说它们是订单。 订购 OrderID Date SalesmanId … 我想从此列表中提取一个Distinct的SalesmanId列表。 做这个的最好方式是什么? 我不认为它通过手动循环……是吗? 更新感谢您的回复。 我想到了一个额外的要求(在Jon Skeets回答之后概述)并将其编码为: var salesusers = from s in lstOrders group s by new { s.SalesUserId,s.Username} into g select new { UserName = g.Key.Username, UserId = g.Key.SalesUserId }; 它有效,但我不确定这是否是正确的方法,或者我是否离开了标记? 谢谢。 更新#2:这个跑步和跑步 – 像我这样的新手可能会发现这个链接问题的答案也很有用。

对没有LINQ的匿名类型的List 进行排序

Random r = new Random(); List myList = new List(); for (int i = 0; i obj1.A.CompareTo(obj2.A) ); 上面的代码定义了一个通用List ,用100个匿名变量填充它,有两个成员A和B. 假设我想在A上对myList进行排序。最后一行尝试对列表进行排序,但是这段代码显然不能编译,因为编译器不知道对象列表包含什么。 不使用LINQ,是否可以使用lambda或类似方法对此列表进行排序?

将列表元素分组到字典

我有一个包含8个元素的列表: ConfigFile.ControllerList 此列表的类型为: List 如何将ControllerList中的控制器添加到3个字典键中。 字典就像: Dictionary<int, List> ControllerDictionary = new Dictionary<int, List>(); 我想将前3个控制器添加到字典键0,然后想要将下3个控制器添加到字典键1,最后想要将最后2个控制器添加到字典键2.我怎么能这样做?

在c#中获取列表中重复项的索引

我正在寻找一种方法来从列表中的关键字搜索获取列表中所有元素的索引。 例如,我的列表有: Hello World Programming Rocks Hello Hello World I love C# Hello 现在从这个字符串列表中,我想获得所有表示Hello World的元素索引。 我尝试了以下但它只返回它找到的具有我的搜索条件的第一个索引: for (int i = 0; i< searchInList.Count; i++) foundHelloWorld[i] = searchInList.IndexOf("Hello World"); 有人知道这样做的方法吗? 谢谢

在不使用.Add()的情况下动态添加项目到列表按索引

我试图在没有动态使用.Add()的情况下将项目添加到列表中。请注意,由于项目的性质,我无法使用替代数据结构,如字典或简单数组甚至是HashSet。 我需要一个解决方案来解决以下问题,因为它是: List initA = new List(); for (int i = 0; i < m; i++) initA[i] = i; 更新:但是,如果有人建议我更好的数据结构来实现以下想法,那么我可以使用它作为替代: 我设置了这样的A例如: A[0] = (1,2,3,4,5…) A[1] = (10,20,30,40 …) 我需要直接访问:A [0] [1] = 2,A [1] [3] = 40我不知道内部数组的大小(设置元素的实际大小)这就是为什么我将此集实现为列表数组,因为我不知道它的大小,所以我不能将Jagged Array用于内部数组。 set元素在运行时添加。 有关解决第一期的任何建议吗? 甚至建议取代代表这样一套的策略? 请注意,我需要有效的数据结构,因为A将存储> 1M套。 这在C ++中是非常容易的任务,你可以使用指针…实际上这是我解决问题的方法,因为在C#中使用不安全的代码存在风险

试图实现一个可以比较任何两个列表的方法,但它总是返回false

我正在尝试创建一个方法,可以比较任何两个列表的相等性。 我试图以一种validation一个列表的每个元素与另一个列表的每个元素具有相同值的方式来比较它们。 下面的My Equals方法总是返回false ,有人能看出为什么会这样吗? using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; public class IEnumerableComparer : IEqualityComparer<IEnumerable> { public bool Equals(IEnumerable x, IEnumerable y) { for(int i = 0; i<x.Count();i++){ if(!Object.Equals(x.ElementAt(i), y.ElementAt(i))){ return false; } } return true; } public int GetHashCode(IEnumerable obj) { if (obj == null) return 0; return unchecked(obj […]

Xml反序列化 – 将两个元素合并为一个List 对象

我有一个XML文档,并使用反序列化,有没有办法将两个元素组合成一个对象? XML示例: 3 4 我想创建一个包含项目3和4的列表(类型为Parameter)。 我尝试过使用XmlArrayItem,例如: [XmlArrayItem(“Parameter1”)] [XmlArrayItem(“Parameter2”)] [XmlArray] public Parameter[] Parameters; // have also tried this as public List Parameters = new List(); 我尝试过使用XmlElements(但我无法弄清楚如何将它们组合起来): [XmlElement(“Parameter1”)] public List Parameters = new List(); 有没有办法做到这一点,而不只是创建两个单独的列表,并在以后组合它们? 请注意,更改XML格式不是一种选择。

KeyValuePair键上的相交列表?

如何根据键输入两个KeyValuePairs列表? 我试过了: List<KeyValuePair> listA = new List<KeyValuePair>(); List<KeyValuePair> listB = new List<KeyValuePair>(); … var result = listA.Intersect(listB); 这预计不起作用。 我是否需要根据键编写自己的比较器,或者使用LINQ / Lambda有一种简单的方法吗? 谢谢!

c#:如何从List 中的特定索引读取

我有一类人和列表集合列表包含人类的所有值,例如: 列表ilist有2个值[0] = {firstname,lastname}。 [1] = {FIRSTNAME2,lastname2} 现在当我迭代到列表我能够打印列表,但我想更改我的列表的某些部分的值,例如在索引1,如果我想将firstname2的值更改为firstname3我无法做到这一点。 任何人都可以告诉我如何打印列表,然后在该索引上更改索引的任何值,即person类中的firstname和secondname变量,以便我可以更新我的值谢谢