草庐IT

int_list

全部标签

c# - 将对象列表转换为 List 与 IList

刚刚遇到这个:Func>foo=()=>newList();Lists=(List)foo();ILists1=(IList)foo();编译器提示转换为List(有道理),但对IList只字不提。让我想知道这是为什么? 最佳答案 编译器知道List不能是List.因此它给出了一个编译器错误。然而,如果List第二次转换可能成功实际上是一些也实现了IList的派生类.如果两种类型都不是接口(interface),或者如果一种类型是不相关的接口(interface)而另一种类型是密封的(或结构),您只会从转换中得到编译时错误。引用规范

容量超过 Int.MaxValue 的 C# 数组

我想知道C#中是否有任何结构可以包含超过Int.MaxValue的2,147,483,647项限制,以防信息集非常大。这必须用多级阵列来完成吗?或者您能否创建一个最大长度为Long.MaxValue的数组?如果是,怎么办? 最佳答案 完成了,一个样例BigArray实现ishere. 关于容量超过Int.MaxValue的C#数组,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3

c# - 将 hashtable.Keys 转换为 List<int> 或其他 IEnumerable<int>

我知道,我还有其他选择,例如我可以维护一个单独的键列表。请不要建议其他选项。我只是想知道我是否能成功。请不要问我要解决什么问题,或者类似的问题。这是一道纯粹而简单的CS题。我想知道是否有人知道从Hashtable中获取key的方法并将它们转换成List或其他类型的IEnumerable(当然,我的key实际上是整数)。鉴于我可以毫无问题地做到这一点:foreach(intkeyinhashtable.Keys)为什么这会给我错误?(List)hashtable.Keys 最佳答案 如果您有可用的LINQ扩展方法,您可以执行以下操作.

c# - 从 "1,2,3"解析 int[]

我有一个名为ID的多选下拉列表,它提交ID=1,2,3,我需要将其解析为整数数组以在过滤器方法中执行Contains()on。目前我使用:string[]ids=Request["ID"].Split(',');我不太喜欢,因为比较字符串比比较int慢。有什么建议吗? 最佳答案 Request["ID"].Split(',').Select(x=>int.Parse(x)).ToArray();当然,如果任何结果数字字符串不是“可解析的”(是否存在这样的词?),这将抛出。 关于c#-从"

c# - 在此上下文中仅支持原始类型 ('such as Int32, String, and Guid' )

我收到以下错误:Unabletocreateaconstantvalueoftype'Phoenix.Intranet.Web.ClientSettings.ComponentRole'.Onlyprimitivetypes('suchasInt32,String,andGuid')aresupportedinthiscontext.我明白为什么会出现这个错误。我不明白的是为什么我的代码会产生错误。我的比较是针对原始类型的。所有的比较都是Guid到Guid。该错误明确指出Guids正常。错误发生在这一行(靠近底部):varvla=(fromcirinphoenixEntities.Co

c# - 是否可以创建通用的 Int-to-Enum 转换器?

我想说如果int值等于(int)MyEnum.Value,则将其解析为True我知道我可以制作一个返回(MyEnum)intValue的Converter,但是我必须为我在DataTriggers中使用的每个Enum类型制作一个转换器.是否有一种通用的方法来创建可以提供这种功能的转换器? 最佳答案 可以以可重用的方式在枚举值和它们的基础整数类型之间创建一个转换器——也就是说,您不需要为每个枚举类型定义一个新的转换器。为此,Convert和ConvertBack提供了足够的信息。publicsealedclassBidirection

c# - IList<T>.FindIndex(Int32, Predicate <T>)

有一个List.FindIndex(Int32,Predicate).该方法正是我想要的IList对象。我知道IList有一个方法IndexOf(T)但我需要谓词来定义比较算法。是否有方法、扩展方法、LINQ或一些代码来查找IList中的项目索引?? 最佳答案 好吧,您真的可以轻松编写自己的扩展方法:publicstaticintFindIndex(thisIListsource,intstartIndex,Predicatematch){//TODO:Validationfor(inti=startIndex;i

c# - 在 C# 中,为什么从 List 创建 HashSet 比从 HashSet 开始更快?

我有一个方法接受上限,并返回一个不超过该上限的素数列表。publicstaticListAllPrimesUnder(intupperLimit)我后来决定我真的只需要在列表中查找,通常只问“这是素数”这个问题。因为我处理的是小于一百万的所有质数,所以我意识到HashSet是我应该使用的结构。当然,使用该方法的结果进行查找更快,但方法本身较慢。我认为它变慢的原因是HashSet在添加之前检查重复项,而List只是将它推到最后。令我感到惊讶的是,以及产生问题和标题的原因是,为什么要从List开始并使用它来创建HashSet,如下所示:hashSet=newHashSet(Prime.Al

c# - Web Api HTTPPost 不接受 int

我试图只传递body一个int但它不起作用为什么我需要创建一个属性类型为int的类?(然后就可以了)有效[HttpPost][Route("api/UpdateMainReversed")]publicIHttpActionResultUpdateMainVerified(DataAccess.Entities.RequestMainmainValues){....}不工作[HttpPost][Route("api/UpdateMainReversed")]publicIHttpActionResultUpdateMainVerified(intmainId){....}使用Postm

c# - Visual Studio 代码分析规则 - "Do not expose generic lists"

Donotexposegenericlists如果我所有的方法都需要公开一个集合,那么我需要使用LinqExtension.ToList(),几乎所有我需要使用列表的地方,或者我所有代码中的用户集合。如果是这样的话,.ToList()是在忽略规则吧?或者是否有一种技术,例如复制列表o来解决违规问题并仍然返回列表? 最佳答案 我禁用了该规则,因为我觉得它无效。如果你想返回一个包含O(1)的集合count并且不是对内部字段的直接引用,List是最好的选择。我不太了解您的情况,但听起来您有一种方法可以返回对某些内部数据的LINQ查询。如果