Tag: 集合

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

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

在给定对象y的情况下,我可以在散列集中检索存储的值x,其中x.Equals(y)

[TestFixture] class HashSetExample { [Test] public void eg() { var comparer = new OddEvenBag(); var hs = new HashSet(comparer); hs.Add(1); Assert.IsTrue(hs.Contains(3)); Assert.IsFalse(hs.Contains(0)); // THIS LINE HERE var containedValue = hs.First(x => comparer.Equals(x, 3)); // i want something faster than this Assert.AreEqual(1, containedValue); } public class OddEvenBag : IEqualityComparer { public bool Equals(int x, int y) […]

绑定到集合的视图,只需在WPF中调用ToString()

我将GridView绑定到一个对象集合,如下所示: public class Transaction { public string PersonName { get; set; } public DateTime TransactionDate { get; set; } public MoneyCollection TransactedMoney { get; set;} } MoneyCollection只是inheritance自ObservableCollection ,是MyMoney类型对象的集合。 在我的GridView中,我只想将列绑定到MoneyCollection的ToString()方法。 但是,将其直接绑定到TransactedMoney属性会使每个条目显示文本“(Collection)”,并且永远不会调用ToString()方法。 请注意, 我不想绑定到MoneyCollection中的项目 ,我想直接绑定到属性本身,只需在其上调用ToString() 。 我知道它绑定到集合的默认视图。 所以我的问题是 – 如何以一种调用ToString()方法的方式将其绑定到集合? 这是我的第一个WPF项目,所以我知道这可能有点愚蠢,但指针非常受欢迎。

最佳查找数据结构,仅存储密钥(无值的字典)

.Net中具有高性能查找的最佳数据结构是什么,如二叉树实现,但只存储密钥(字符串键)? 我们只需要检查集合中是否存在某个键。 喜欢: Dictonary myKeys; myKeys.Add(“key1”, null); myKeys.Add(“key2”, null); // Dozens or hundreds keys Assert.IsTrue(myKeys.Contains(“key1”));

entity framework – 在数据库中保存枚举的ICollection

我有一个类ICollection属性的类。 比如说我们有以下enumeration : public enum CustomerType { VIP, FrequentCustomer, BadCustomer } 我们还有以下课程: public class Customer { public int Id { get;set; } public string FirstName { get;set; } public string LastName { get;set; } public ICollection CustomerAtrributes { get;set; } } 如何将属性CustomerAtrributes存储在数据库中以便以后轻松检索? 例如,我正在寻找类似以下的东西: CustomerId | FirstName | LastName | CustomerType | 1 | Bob | […]

C#::何时使用事件或从事件处理接口派生的对象集合?

我认为这是一个简单的“问题”,我已经找到了几个解决方案,但我不知道哪种方式可以用于C#中的最佳实践。 在应用程序的生命周期中,我有一个主对象(比如一个单例)。 这个“MasterClass”创建了一堆新类型的对象,每次调用MasterClass.Instance.CreateSlaveObject时都会说“SlaveClass”。 此MasterClass还监视一些其他对象的状态更改,当发生这种情况时,通知它创建的SlaveClass对象的更改。 看起来很简单。 因为我来自原生的C ++世界,所以我首先使用它来创建一个界面 Interface IChangeEventListener { void ChangeHappened(); } 我从中派生出“SlaveClass”。 然后在我的“MasterClass”中,我有: … IList slaveList; … CreateSlaveObject { … slaveList.Add(slave); } … ChangeHappened() { … foreach(var slave in slaveList) { slave.ChangeHappened(); } } 这很有效。 但是我一直在想,如果有另一种(更好的)方法可以做到这一点。 所以我对这个主题进行了更多研究,并看到了C#事件。 因此,我不是在MasterClass中维护一个奴隶集合,而是将MasterClass注入SlaveClass的ctor(或通过一个属性),让SlaveClass对象将它的ChangeHappened作为事件处理程序添加。 这将说明: …Master… public delegate void ChangeHappenedDelegate(object sender, NewsInfoArgs args); public event NewUpdateDelegate ChangeHappenedEvent; …. public […]

如何克隆Collection ?

我有一个枚举, Fruit和一个类FruitCollection ,它派生Collection 。 我找不到使用.NET克隆FruitCollection方法,我发现这篇MSDN文章定义了一个DeepClone()函数并使用了MemberwiseClone() 。 现在,因为这是一个枚举,我认为我不需要“深入”克隆它,所以我认为MemberwiseClone()就足够了。 但是,当我在PowerShell中尝试它时,克隆的对象似乎只是指向原始对象而不是克隆的指针。 我究竟做错了什么? 还有另一种简单克隆Collection吗? FruitCollection没有其他自定义成员。 C#代码: public enum Fruit { Apple = 1, Orange = 2 } public class FruitCollection : Collection { public FruitCollection Clone() { return Clone(this); } public static FruitCollection Clone(FruitCollection fruitCollection) { return (FruitCollection)fruitCollection.MemberwiseClone(); } } PowerShell输出: PS> $basket1 = New-Object TestLibrary.FruitCollection PS> $basket1.Add([TestLibrary.Fruit]::Apple) PS> […]

如何使用C#中的键对NameValueCollection进行排序?

我写了下面的代码并且它也有效 – 但我想知道它们是否比这更好: NameValueCollection optionInfoList = ….. ; if (aSorting) { optionInfoListSorted = new nameValueCollection(); String[] sortedKeys = optionInfoList.AllKeys; Array.Sort(sortedKeys); foreach (String key in sortedKeys) optionInfoListSorted.Add(key, optionInfoList[key]); return optionInfoListSorted; }

C#列表通用扩展方法与非通用扩展方法

这是一个简单的问题(我希望),像List这样的集合类中有generics和非generics方法,它们具有Where和Where 。 例: List numbers = new List() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; IEnumerable evens = numbers.Where((x) => { return x % 2 == 0; }); IEnumerable evens2 = numbers.Where((x) => { return x % 2 == 0; }); 为什么要使用一个(通用或非通用)?

FOREACH返回的对象的顺序是否稳定?

假设同一个集合上的两个itterations将以相同的顺序返回对象,这是安全的吗? 显然,假设该集合没有另外改变。