问题标签 [ilist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12543 浏览

c# - .NET / C# 绑定 IList到 DataGridView

我有IList<string>一个函数返回(作为变量 lst),我设置然后我

数据网格添加一列标记为长度,然后列出每个字符串的长度。如何让它只列出字符串?

0 投票
1 回答
7038 浏览

c# - 为什么选择 IList没有采用 IEnumerable 的 Insert 方法?

我的情况是,我只想将字符串数组(类型 String[])中的值附加到具有 IList<String> 的对象。在 MSDN 上快速查找显示 IList<T> 的 Insert 方法只有一个采用索引和对象 T 的版本,而没有采用 IEnumerable<T> 而不是 T 的版本。这是否意味着我必须在输入列表上编写一个循环才能将值放入目标列表?如果是这样的话,对我来说,这似乎是非常有限且非常不友好的 API 设计。也许,我错过了一些东西。在这种情况下,C# 专家会做什么?

0 投票
6 回答
41678 浏览

c# - 实现 IList 接口

我是仿制药的新手。IList<T>我想通过从接口派生来实现我自己的集合。

您能否为我提供一些实现IList<T>接口的类的链接或提供至少实现AddRemove方法的代码?

0 投票
3 回答
1977 浏览

c# - IList 在 c# 中使用协变和逆变,这可能吗?

这可能吗?(我没有vs.2010,所以我不能自己尝试,对不起)

如果我做对了,您可以使用它在同一接口中实际实现协变和逆变。

0 投票
2 回答
218 浏览

c# - 为什么数组支持 IList?

IList 接口需要一个 Add 方法。数组实现了这个函数,但它只是抛出一个 NotImplementedException。这对我来说似乎是非常糟糕的设计。

当他们这样做时,设计师们在想什么?

0 投票
2 回答
22318 浏览

c# - 使用 Nhibernate 时检查 C# .Net 中的列表相等性不起作用

我似乎在检查列表是否相等时遇到了问题。就我而言,我有两个角色对象,我想看看它们是否相等。每个角色都包含一个名称和一个权限列表。每个权限只包含一个名称。

我在 Role 和 Permission 对象上定义了一个 equals 方法。这些对象是使用 Nhibernate 从数据库中加载的。这意味着 Role 实际上包含实现 IList 接口的 NHibernate.Collection.PersistentBag 类型对象中的所有权限。

在 Role 类的 equals 方法中,我有一个条件如下:

这总是返回错误。即使列表中的权限包含具有相同名称且顺序相同的对象。如果我没有为 Permission 对象实现 equals 方法,这将是有意义的,但我有。

当我执行这样的语句时:

发生的情况是它首先进入 Role 对象的 equals 方法。好的。equals 方法检查角色的名称以查看它们是否相等。他们是。然后使用上面给出的代码检查权限是否相等。

我在 Permission 类的 equals 方法和 GetHashCode 方法中有一个断点。执行该语句时,不会调用权限类上的 equals 方法和 GetHashCode 方法,但它始终返回 false。实际上,我无法弄清楚会发生什么以确定两个列表不相等。什么被执行?我什至无法进入那行代码。

这似乎应该工作,但它没有。有人对发生的事情有任何想法吗?

0 投票
3 回答
3339 浏览

c# - 无论如何让 IList.Contains() 更像通配符包含?

我正在尝试通过 csv 字符串进行解析,将结果放入 IList 集合中,然后尝试根据传入的内容找到一种方法来执行通配符“包含”。现在我有以下内容:

因此,如果我正在解析的字符串(来自 .config 文件的键值)包含: key="DBExclusionList" value="ReportServer,ReportServerTempDB,SQLSentry20,_TEST"

DBExclusionList.Contains() 对于列表中前 3 项的完全匹配非常有效,但我希望能够将它用于第四项“_TEST”的任何部分匹配

有什么办法吗?我当然可以对其进行硬编码以始终排除任何内容,但我宁愿不这样做。

谢谢。

0 投票
1 回答
1118 浏览

.net - 为什么 ListBox.ObjectCollection 和 ListView.ListViewItemCollection 有 AddRange 而没有 InsertRange 或 RemoveRange?

因此,两者都ListBox.ObjectCollection实现ListView.ListViewItemCollectionIList类,它提供了AddRemove方法,但没有AddRange, InsertRange, 或RemoveRange。但是,ListBox.ObjectCollectionListView.ListViewItemCollection提供了一种AddRange方法——只是 noInsertRangeRemoveRange.

ArrayList另一方面,查看类,它在实现之上IList还提供AddRangeInsertRangeRemoveRange。此类和接口的通用形式List<T>(具有AddRangeInsertRangeRemoveRange)和IList<T>(仅提供AddRemove)之间存在相同的区别。

我可以理解不提供的IList和接口等等——它只是一个接口;超出, ,等最低要求的任何内容都是可选的。但是,考虑到和类的方法的有用性,并考虑到它们对和控件的方便程度,我想知道为什么这些控件不存在它们。IList<T>AddRangeAddRemoveRemoveAt*RangeArrayListList<T>ListBoxListView

有人知道吗?和 的内部实现是否有某些东西InsertRange使这些方法在某种程度上不那么有效,更复杂,或者在其他方面不太RemoveRange适合ListBox.ObjectCollectionand ?ListView.ListViewItemCollectionAddRange

需要明确的是:我不是在寻找关于“看起来微软的某个人变得懒惰”的猜测;相反,我想知道是否有人真正知道AddRangeand InsertRange/之间的合法区别,这可能解释andRemoveRange中缺少后一种方法。ListBox.ObjectCollectionListView.ListViewItemCollection

0 投票
2 回答
2046 浏览

c# - DataGridView 过滤

我正在创建一个应该能够获取任何类型列表的控件。基本上如下代码:

现在我有一个文本框,我想用它来过滤网格中的数据。我认为它就像设置 bs.Filter 属性一样简单,但显然不是。bs.SupportsFiltering 也返回 false。

这是我使用 IList 的问题吗?如果是这样,我可以使用另一个集合类/接口来达到相同的效果吗?(同样,我不确定列表中对象的类型。

0 投票
5 回答
1695 浏览

c# - 使用 IList,如何通过逗号分隔的 ID 列表填充它

我有一个属性 IList CategoryIDs 和一个包含逗号分隔列表的私有字符串变量,如何优雅地填充 IList 集合?

我之前问过,我学会了一种用 .AddRange(...) 填充列表的巧妙方法,但现在我意识到我必须让属性返回 IList,它似乎不支持 .AddRange 方法。