Tag: list

使用LINQ从字符串列表中提取int

我有一个List ,其中一些字符串是数字。 我想将此子集提取到List 。 我以相当冗长的方式完成了这个 – 如下所示 – 但我感觉必须有一个更整洁的LINQ方式来构建它。 有任何想法吗? List myStrs = someListFromSomewhere; List myInts = new List(); foreach (string myStr in myStrs) { int outInt; if (int.TryParse(myStr, out outInt)) { myInts.Add(outInt); } } 显然我不需要解决这个问题 – 它主要用于我的LINQ教育。

RemoveRange()方法如何在List 中工作?

如标题。 我知道它可能在删除项目之前和之后合并了2个子列表,但是在删除LAST元素时该方法如何表现? 换句话说:它是否以某种方式复制了删除索引之前所有元素? 我只是对在巨型列表上使用RemoveRange的性能感到好奇(比方说5000个元素)只是为了删除fe中的最后2个。 如果它复制了那么,是否有办法更改一些设置List大小的内部变量(并将其余的已分配元素视为垃圾)? 我只是设法找到一个信息,它是一个O(n)复杂度算法,但我不确定该情况下的“n”是列表大小,还是要删除的项目数。 任何提示都会很高兴。

查询词典词典?

请问您如何查询字典词典和/或列表字典? private Dictionary<string, Dictionary> masterDict= new Dictionary<string, Dictionary>(); Private Dictionary<string, List> masterList= new Dictionary<string, List>(); 我知道如果我执行以下操作,我会得到masterDict中包含的字典列表,但我不确定如何获取这些字典的值。 foreach (var kvp in masterDictMethod()) { Console.WriteLine(“Key = {0}, Value = {1}”, kvp.Key, kvp.Value); } 谢谢你的期待;)

加入List 和Commas Plus“和”Last Element

我知道我可以想出办法,但我想知道是否有更简洁的解决方案。 总是有String.Join(“, “, lList)和lList.Aggregate((a, b) => a + “, ” + b); 但我想为最后一个添加一个例外,将”, and “作为其连接字符串。 Aggregate()在我可以使用的地方有一些索引值吗? 谢谢。

C#列为字典键

我有一个由List键入的字典: private Dictionary<List, string> Lookup; 我正在尝试使用ContainsKey,但它似乎没有工作,我不知道为什么。 以下是我的Visual Studio立即窗口的调试信息: ?Lookup.Keys.ElementAt(7)[0] {custom_obj} Direction: Down SID: 2540 ?Lookup.Keys.ElementAt(7)[1] {custom_obj} Direction: Down SID: 2550 searchObject[0] {custom_obj} Direction: Down SID: 2540 searchObject[1] {custom_obj} Direction: Down SID: 2550 ?Lookup.ContainsKey(searchObject) false 在我的常识中,最后一个ContainsKey应该是真的。 希望我在这里包含了足够的信息……任何想法? 谢谢!

LINQ – 获取列表中列表中的所有项目?

我正在努力学习LINQ的学习曲线,我真的可以使用一些帮助。 我不知道我想要的是否可能,但如果我不得不下注,我敢打赌。 我目前有一个名为_tables的对象列表,其中每个对象都有一个通过属性“索引”公开的另一个对象列表。 基本上,我想最终得到一个List,其中包含来自所有_tables的所有索引。 这是我到目前为止所拥有的: var indexes = from TableInfo tab in _tables where tab.Indexes.Count > 0 select tab.Indexes; 不幸的是,这似乎给了我另一个列表列表,但只有索引列表包含多个值…有没有办法将所有这些列表放在一起没有循环?

获取通用列表中对象的索引

我有一个自定义对象列表,每次删除一个对象我需要知道它的索引时,有两个属性作为标识符(IDa,IDb)。 如何在不循环所有列表的情况下获取对象的索引? List list =new List(); list.RemoveAll((MiniMapRecord p) => p.IDa == IDa.SystemID & p.IDb == pInputRecordMap.IDb);

将列表拆分为多个列表,其中序列递增

我有一个int列表,我希望在找到较低或相同的数字后拆分原始列表后创建多个List。 数字不按排序顺序排列。 List data = new List { 1, 2, 1, 2, 3, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 6 }; 我希望结果如下: { 1, 2 } { 1, 2, 3 } { 3 } { 1, 2, 3, 4 } { 1, 2, 3, 4, 5, 6 } 目前,我正在使用以下linq来做到这一点,但没有帮助我: List data […]

如何避免实现所有IList成员,并且仍然具有实现集合的基本接口?

如何实现更简单的解决方案,我正在寻找一种更好的方法,而不是必须创建一个复杂的实现类,欣赏一些建议。 目前我正在做以下事情: public interface IAddressCollection : IList { new void Add(IAddress address); } 所以我必须实现类似下面代码的所有内容。 我想避免这样做,我正在寻找一种简单的方法。 public class AddressCollection : IAddressCollection { private List _data = new List(); new public void Add(IAddress applicationAddress) { // some logic here… eg if (!this.Any(x => x.AddressType != applicationAddress.AddressType)) { _data.Add(applicationAddress); } } // Plus all the members of IList […]

递归搜索嵌套列表

我已经阅读并搜索了,我还没有想出这个相对简单的问题的答案。 我上课了: public class AccessibleTreeItem { public string name; public List children; public AccessibleTreeItem() { children = new List(); } } 这是使用一系列在这种情况下并不重要的函数填充的,但我正在寻找的是一种搜索列表中所有子项,搜索特定“名称”值的方法,以及如果找到,返回该列表。 如何以最简单的方式实现这一目标,性能最低? 谢谢 – 我已经被困在这几天了……