Tag: 集合

CollectionBase类仍然受支持吗?

我想创建一个inheritance自CollectionBase的类,但它似乎不支持LINQ扩展! 它仍然受支持吗? 或者有替代解决方案吗?

递归获取对象的属性和子属性

好吧,所以起初我觉得这很容易,也许就是这样,我太累了 – 但这就是我想做的事情。 说我有以下对象: public class Container { public string Name { get; set; } public List Addresses { get; set; } } public class Address { public string AddressLine1 { get; set; } public string AddressLine2 { get; set; } public List Telephones { get; set; } } public class Telephone { public string […]

从C#中的基类访问派生类的属性

在C#中,当generics列表仅包含基类时,访问派生类的属性的最佳方法是什么。 public class ClassA : BaseClass { public object PropertyA { get; set; } } public class ClassB: BaseClass { public object PropertyB { get; set; } } public class BaseClass { } public void Main { List MyList = new List(); ClassA a = new ClassA(); ClassB b = new ClassB(); MyList.Add(a); MyList.Add(b); for(int […]

如何在C#中迭代Collection时添加或删除对象

我在迭代Collection时尝试删除对象。 但我得到例外。 我怎样才能做到这一点? 这是我的代码: foreach (var gem in gems) { gem.Value.Update(gameTime); if (gem.Value.BoundingCircle.Intersects(Player.BoundingRectangle)) { gems.Remove(gem.Key); // I can’t do this here, then How can I do? OnGemCollected(gem.Value, Player); } }

测试对象是否是C#中的字典

有没有办法测试对象是否是字典? 在一个方法中,我试图从列表框中的选定项目中获取值。 在某些情况下,列表框可​​能绑定到字典,但在编译时不知道。 我想做类似的事情: if (listBox.ItemsSource is Dictionary) { KeyValuePair pair = (KeyValuePair)listBox.SelectedItem; object value = pair.Value; } 有没有办法在运行时使用reflection动态地执行此操作? 我知道可以使用generics类型的reflection并确定键/值参数,但我不确定在检索这些值之后是否有办法完成其余的操作。

将List 转换或转换为EntityCollection

您如何将List转换或转换为EntityCollection ? 有时,当尝试从头开始创建子对象的集合(例如,从Web表单)时,会发生这种情况 无法隐式转换类型 ‘System.Collections.Generic.List’到 ‘System.Data.Objects.DataClasses.EntityCollection’

从’foreach’中有效删除项目

现在,我能想到的最好的是: bool oneMoreTime = true; while (oneMoreTime) { ItemType toDelete=null; oneMoreTime=false; foreach (ItemType item in collection) { if (ShouldBeDeleted(item)) { toDelete=item; break; } } if (toDelete!=null) { collection.Remove(toDelete); oneMoreTime=true; } } 我知道我在这里至少有一个额外的变量,但我把它包括在内以提高算法的可读性。

如何获得子集的所有可能组合?

考虑这个List List data = new List(); data.Add(“Text1”); data.Add(“Text2”); data.Add(“Text3”); data.Add(“Text4”); 我遇到的问题是:如何获得列表子集的每个组合? 有点像: #Subset Dimension 4 Text1;Text2;Text3;Text4 #Subset Dimension 3 Text1;Text2;Text3; Text1;Text2;Text4; Text1;Text3;Text4; Text2;Text3;Text4; #Subset Dimension 2 Text1;Text2; Text1;Text3; Text1;Text4; Text2;Text3; Text2;Text4; #Subset Dimension 1 Text1; Text2; Text3; Text4; 我提出了一个很好的解决方案,值得在这里分享。

在c#中输出一个受控的QueryString

使用以下代码我得到一个很好的格式化字符串: Request.QueryString.ToString 给我一些类似的东西:&hello = world&microsoft =糟透了 但是,当我使用此代码将集合克隆到另一个对象(相同类型)时,我从ToString()方法返回Type()。 System.Collections.Specialized.NameValueCollection variables = new System.Collections.Specialized.NameValueCollection(Request.QueryString); if (!string.IsNullOrEmpty(variables[“sid”])) variables.Remove(“sid”); Response.Write(variables.ToString()); 是否有更整洁的输出方式,而不是手动查看和构建字符串?

什么是集合语义(在.NET中)?

我需要在自己的类中维护集合语义。 难道你不解释,什么是集合语义? 据我所知,它是一组必须在类中实现的一些接口。 这是真的吗? 如果是 – 我必须在课堂上实现什么 ? 为什么 ? 这两个接口–ICollection和IEnumerable – 是否足够,或者这些只是最必要的接口? 我正在编写一个循环链表,使用这篇文章作为帮助。