草庐IT

c# - 为什么 List<T> 出现 "Index was out of range"异常而不是数组?

当我初始化数组并使用索引器访问元素时,效果很好:object[]temp=newobject[5];temp[0]="bar";现在我希望同样适用于List,假设您可以通过将容量传递给构造函数来初始化它:Listtemp=newList(5);temp[0]="bar";然而,最后一行抛出以下异常:Indexwasoutofrange.Mustbenon-negativeandlessthanthesizeofthecollection为什么List会发生这种情况类型,但不是数组?由于数组只是CLR集合的较低级别抽象,那么为什么会出现此异常?原创question通过AwaisMahmo

c# - Nancy:从 "/"提供静态内容(例如 index.html)?

我正在尝试使用Nancy制作单页Web应用程序。因此,我希望我的根URL提供一个纯.html文件,没有任何View逻辑或任何内容。我试过了Get["/"]=parameters=>Response.AsHtml("content/index.html")但是没有AsHtml.我尝试了一个自定义Bootstrapconventions.StaticContentsConventions.Add(StaticContentConventionBuilder.AddFile("/",@"content/index.html"));但显然它认为“/”不是文件-Nancy给了我一个目录列表htt

c# - 如何从根 url 重定向到/swagger/ui/index?

我有一个安装了Swashbuckle的WebApi项目。在默认设置中,我必须在浏览器中打开http://localhost:56131/swagger/ui/index以查看我的操作描述和测试页面。我希望它可以从站点的根目录访问:http://localhost:56131/。我怎样才能做到这一点? 最佳答案 受thisanswertosimilarquestion影响,稍作修改的代码:publicclassWebApiConfig{publicstaticvoidConfigure(IAppBuilderapp){varhttpC

C# 索引器的意义或好处是什么?

在阅读代码时偶然发现了这个我以前从未见过的片段:publicSomeClass{publicsomeInterfacethis[StringstrParameter]{get{returnSomeInternalMethod(strParameter);}}}好像是这样调用的:SomeClass_someClass=newSomeClass();SomeInterfacereturnedValue=_someClass["someString"];我感兴趣的是这个函数适用于什么地方,或者用这种风格编写的意图是什么。例如,为什么这比简单地调用函数更受欢迎? 最

c# - 实验性特征 "indexed members"是什么?

论新RoslynPreviewsite它提到能够尝试潜在的语言特性,并列出了三个这样的特性。前两个我以前听说过(例如here),但我无法从代码示例中弄清楚“索引成员”是什么。谁能根据其他来源或代码示例解释这些是什么?(毫无值(value)$x不是C#5中的有效标识符。)更新-根据RoslynFeatureStatus页面,此功能已被撤销。 最佳答案 .$foobar只是["foobar"]的缩写形式 关于c#-实验性特征"indexedmembers"是什么?,我们在StackOverf

c# - 在 c# Parallel.ForEach 中的 List.Add() 上出现 "Index out of bounds"错误

这是代码Listsomething=newList();Parallel.ForEach(anotherList,r=>{..dosomeworksomething.Add(somedata);});Indexoutofbounds错误大约每百次运行1次。有没有办法防止由线程引起的冲突(我假设)? 最佳答案 为了防止出现此问题,您可以使用ConcurrentQueue而不是List或并行部分中的类似并发集合。并行任务完成后,您可以将其放入List中。.有关详细信息,请查看System.Collections.Concurrent命名

c# - 为什么 Dictionary[index] 会抛出 KeyNotFoundException 但 Hashtable[index] 不会?

知道为什么这种行为不同吗? 最佳答案 这是answer.TheprimaryreasonDictionarythrowsisthatthereisno"error"valuethatworksoveranyV.Hashtableisabletoreturnnullbecausethekeyisalwaysareferencetype. 关于c#-为什么Dictionary[index]会抛出KeyNotFoundException但Hashtable[index]不会?,我们在Stack

C# 多索引器

是否有可能有类似下面的东西:classC{publicFooFoos[inti]{...}publicBarBars[inti]{...}}如果没有,那么我可以通过哪些方式实现这一目标?我知道我可以创建名为getFoo(inti)和getBar(inti)的函数,但我希望通过属性来实现。 最佳答案 不在C#中,不。但是,您始终可以从属性返回集合,如下所示:publicIListFoos{get{return...;}}publicIListBars{get{return...;}}IList有一个索引器,所以你可以这样写:Cwhat

c# - 什么时候应该使用 C# 索引器?

我想更多地使用索引器,但我不确定何时使用它们。我在网上找到的所有示例都是使用MyClass和IndexerClass类的示例。在有学生和教师的学校系统中,每个教师都有一个他们负责的学生列表-在这种情况下是否需要索引器?为简单起见:每个学生只能属于一个教师。 最佳答案 Indexer是一个高度特化的属性,它允许类(或结构)的实例像数组一样被索引(属性可以是静态的,但索引器不能)。为什么要使用索引器:类本身就是一个数据结构,而不是一个新的数据结构。简化语法——语法糖何时使用:如果您的类需要其实例的列表(/数组)(示例1)如果您的类表示与

c# - WPF 数据网格 : How to Determine the Current Row Index?

我正在尝试基于DataGrid实现一个非常简单的电子表格功能。用户点击一个单元格用户键入一个值并按回车键扫描当前行并更新依赖于所单击单元格的任何单元格公式。这似乎是满足我要求的最佳事件处理程序:privatevoidmy_dataGrid_CurrentCellChanged(objectsender,EventArgse)问题:如何检测当前行的行索引? 最佳答案 试试这个(假设您的网格名称是“my_dataGrid”):varcurrentRowIndex=my_dataGrid.Items.IndexOf(my_dataGrid