问题标签 [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.
c# - 转换 IList集合到逗号分隔的列表
将 IList 集合转换为逗号分隔的 id 字符串的任何优雅方法?
“1,234,2,324,324,2”
c# - 哪个 Json 反序列化器呈现 IList收藏?
我正在尝试将 json 反序列化为一个对象模型,其中集合表示为IList<T>
类型。
实际的反序列化在这里:
在我发布异常之前,我让你应该知道隐式转换是什么。这是Contact
类型:
这是ContactDetail
类型:
重要的是要知道LazyList<T>
它实现IList<T>
:
现在这个LazyList<T>
类定义很好,直到我尝试将 Json 反序列化到它中。System.Web.Script.Serialization.JavaScriptSerializer
似乎想要将列表序列化为有意义的列表,因为List<T>
它的年龄但我需要它们的类型IList<T>
,以便它们将转换为我的LazyList<T>
(至少那是我认为我出错的地方)。
我得到这个例外:
当我尝试List<ContactDetail>
在我的Contact
类型中使用时(如您在上面所见),它似乎有效。但我不想使用List<T>
's. 我什至尝试让我的LazyList<T>
继承List<T>
似乎执行,但是将List<T>
' 内部传递T[]
给我的实现是一场噩梦,我根本不希望List<T>
我的模型中任何地方都膨胀。
我还尝试了其他一些 json库但无济于事(我可能没有充分利用这些库。我或多或少地替换了引用并尝试重复此问题顶部引用的代码。也许传递设置参数将帮助??)。
我不知道现在该尝试什么。我要使用另一个解串器吗?我是否调整反序列化本身?我需要改变我的类型来取悦反序列化器吗?我是否需要更多地担心隐式转换或只是实现另一个接口?
asp.net - 从 asp.net vb.net 中的 dal 函数返回多个 ilist
我修改了一个函数,该函数从存储过程返回强类型的产品 Ilist(来自 Web 搜索表单)。
由于存储过程的复杂性,我已将其更改为返回产品类别以及使用产品结果。我可以将它放入另一个强类型 ilist,但对于我的生活,我无法返回这两个 ilist。
Unfotunatley 在阅读了数百篇帖子之后,我的天赋已经耗尽,似乎使用 linq 是可能的,但我宁愿不这样做,因为我在那里的知识更少。
是否可以将 ilists 放入某种集合中并将它们返回以用作 ilists?
如果没有,还有其他方法吗?我可以再次调用存储过程,但调用两次会很昂贵。
c# - 可以存储在列表中的元素是否有限制?
可以存储在 List 中的元素是否有限制?或者你可以一直添加元素直到你内存不足?
c# - 通用列表问题
我有这样的对象。
和一个测试班
}
但我得到从 GetAllActiveData 方法返回的空结果。无论如何我将 IList 从一种类型转换为另一种类型。
c# - 重载函数以接受 IEnumerable 是常见的(或鼓励的)做法吗, 收藏夹, 列表, ETC。?
编辑:
从给出的答案中,我已经很清楚我在下面询问的设计应该如何实际实施。考虑到这些建议(并回应礼貌地指出我的示例代码甚至无法编译的评论),我编辑了以下代码以反映普遍共识。鉴于代码,剩下的问题可能不再有意义,但我将其保留为后代。
假设我有一个函数的三个重载,一个 take IEnumerable<T>
,一个takingICollection<T>
和一个taking IList<T>
,如下所示:
这里的想法是,如果我有一个IList<T>
,那会使我的工作变得最简单;另一方面,我仍然可以使用 anICollection<T>
甚至 an来完成这项工作IEnumerable<T>
;这些接口的实现效率不高。
我不确定这是否可行(如果运行时能够根据传递的参数选择重载),但我已经对其进行了测试,并且似乎可以。
我的问题是:这种方法有没有我没有想到的问题?或者,这实际上是一个好方法吗,但是有更好的方法来实现它(也许通过尝试将values
参数转换为IList<T>
第一个并在转换有效时运行更有效的重载)?我只是想知道别人的想法。
c# - C# 初学者:我的 IList.Where() 方法到哪里去了?
我有另一个简单的(我认为)难倒我。我在我的一个控件中编写了一个方法,该方法在给定文件名的情况下获取 CMS 中文件的最新版本(即,无论文件位于哪个文件夹中)。我发现它足够有用,我想我会把它放在我的 CMSToolbox 类中,但是当我这样做时,我不能再使用Where()
CMS 提供的 FileManager 类的方法(它返回一个列表)。
这是我的课程的简化示例:
当我在 Control 的上下文中执行完全相同的操作时(实际上是由 CMS 提供的扩展类Control
),我可以访问该Where()
方法,但在我的 ToolBox 类中我没有。是什么赋予了?我认为 anIList
始终允许从您使用它的任何地方访问相同的方法。
我又错了,哈哈:)
编辑:Filemanager.GetGroupAll()
返回一个CMSList
扩展IList
c# - c# - 如何反序列化通用列表当我不知道 (T) 的类型时?
出于听觉原因,我使用 binaryformatter 将业务方法的参数序列化到数据库中。
问题是,当参数是通用列表时,我找不到转换反序列化对象的方法,因为我不知道类型,或者如果我知道类型,我不知道如何将对象转换为运行。
任何人都知道如何在运行时动态地转换包含通用列表的对象吗?
我需要这样做,因为我需要在属性网格中显示反序列化数据:
asp.net-mvc - 当 IList 的本地副本更改时,存储在 Session 中的 IList 会更新
我正在构建一个大型的多区域 MVC 项目。(MVC 2 测试版)。
我有一个会话包装类,在它自己的项目 MySession 中,它看起来像这样:
在一个子区域项目中,我通过我的包装器构建并保存一个列表到会话:
这工作正常。我稍后将会话中的列表检索到局部变量 userList 中:
然后我向 LOCAL userList 添加一个新项目(并询问用户是否要保存它):
这是问题发生的地方。在上述 .Add 方法之后,本地 userList 立即添加了新项目,但存储在 Session 中的 userList 还包含添加到本地列表中的新项目。
我不希望在会话中更新列表,除非用户想要保存新列表,并且我明确保存它。
为什么会发生这种情况,我如何只将项目添加到本地列表,而不是当前会话中的项目?
谢谢,这让我发疯了!
nhibernate - 将 IList 强制转换为 IList使用动态实例化
我尝试使用动态实例化将以下 NHibernate 查询转换为 IList<t> 而不是 IList。
运行这个我得到以下错误: -
无法将类型为“NHibernate.Impl.QueryImpl”的对象转换为类型“System.Collections.Generic.IList`1[Domain.Model.Entities.AllName]”。
我知道我可以回来
但我的服务层期望
我怎样才能做到这一点?