草庐IT

单列索引

全部标签

C# 字符串中字符的第三个索引

有没有命令可以获取字符串中字符的第三个索引?例如:error:file.ext:line10:invalidcommand[test:)]在上面的句子中,我想要第3个冒号的索引,也就是第10个冒号旁边的那个。我该怎么做呢?我知道string.IndexOf和string.LastIndexOf,但在这种情况下,我想在第三次使用时获取字符的索引。 最佳答案 String.IndexOf将为您提供第一个的索引,但具有提供起点的重载。因此,您可以使用第一个IndexOf的结果加上一个作为下一个的起点。然后只需累积足够次数的索引即可:var

c# - 使用 OpenXML C# 在 Excel 中获取单元格的列索引

我已经四处寻找了一段时间,但似乎找不到如何做到这一点。我有一个excel表,我正在使用OpenXML阅读它。现在正常的做法是循环遍历行,然后循环遍历单元格以获取值,这很好。但是除了这些值,我还需要单元格的位置,其格式为(rowindex,ColumnIndex)。我设法获得了行索引,但似乎无法弄清楚如何获得列索引。我实际上认为这会很容易,但显然并非如此。 最佳答案 这比您想象的要复杂一些,因为架构允许省略空单元格。要获取索引,您可以使用Cell具有CellReference的对象以A1、B1等格式提供引用的属性。您可以使用该引用来提

c# - 避免在重建期间删除当前的 Lucene.NET 索引

我是Lucene.NET的新手,但我正在使用anopensourcetool专为SitecoreCMS打造它使用Lucene.NET从CMS中索引大量内容。我昨天确认,当我重建索引时,当前的索引文件会被清除干净,因此依赖索引的任何东西在大约30-60秒(完整索引重建的时间)内都没有数据。是否有最佳实践或方法让Lucene.NET在新索引完全重建之前不覆盖当前索引文件?我基本上认为我希望它写入新的临时索引文件,并且在重建完成后让这些文件覆盖当前索引。我正在谈论的例子:建立新索引(~30秒)索引有大约500个文档使用代码访问索引中的数据并在网站上显示重建索引(~30秒)现在读取数据索引的任

c# - 在没有索引的集合上实现 INotifyCollectionChanged

在ASP.Net专门工作了几年之后,我现在才开始接触WPF。我目前遇到的问题是我有一个自定义集合类,我需要将其绑定(bind)到列表框。除了从集合中删除一个项目外,一切似乎都在工作。当我尝试时出现错误:“CollectionRemoveeventmustspecifyitemposition.”问题是这个集合不使用索引,所以我没有看到指定位置的方法,到目前为止谷歌还没有给我一个可行的解决方案……类被定义为实现ICollection和INotifyCollectionChanged.我的内部元素容器是Dictionary它使用项目的Name(string)值作为键。除了这两个接口(int

c# - 如何在起始索引处匹配正则表达式?

如何创建一个正则表达式,从开始搜索的地方开始匹配?换句话说:\A的等价物是什么,表示“在搜索开始时匹配,即使它不在主字符串的开头”?newRegex(@"\A\n").IsMatch("!\n",1);//Shouldbetrue,butisfalse 最佳答案 你要找的是\G:newRegex(@"\G\n").IsMatch("!\n",1);//It'stwue,it'stwue!实际上,这让我感到惊讶。我知道\G,但它通常被描述为匹配输入开头或最近成功匹配结尾的anchor,这两者均不适用于此处。如果这是.NET的创新,他们

c# - 当 .NET 反射器显示它已在 .NET Framework 中完成时,为什么我不能将属性或索引器作为 ref 参数传递?

好的,我将从.NET反射器中剪切和粘贴以演示我正在尝试做的事情:publicoverridevoidUpdateUser(MembershipUseruser){//Abunchofirrelevantcode...SecUtility.CheckParameter(refuser.UserName,true,true,true,0x100,"UserName");//Moreirrelevantcode...}这行代码直接来自.NETFramework中的System.Web.Security.SqlMembershipProvider.UpdateUser(System.Web.d

c# - 根据 item.key 获取字典项的索引

如何根据元素键找到字典元素的索引?我正在使用以下代码来浏览字典:foreach(varentryinfreq){varword=entry.Key;varwordFreq=entry.Value;inttermIndex=??????;}有人能帮忙吗? 最佳答案 Dictionary中没有索引的概念。您不能依赖Dictionary中项目的任何顺序。OrderedDictionary可能是替代方案。varfreq=newOrderedDictionary();//...foreach(varentryinfreq){varword=e

c# - 如何在组合框中将第一个索引设置为空白

我有一个与数据源绑定(bind)的组合框。在此组合框中,我必须在索引0处添加一个空白字段。我编写了以下代码来获取记录。publicListGetSubType(inttyp){using(vartr=session.BeginTransaction()){try{ListlstSubTypes=(fromsbtinsession.Query()wheresbt.FType==typselectsbt).ToList();tr.Commit();returnlstSubTypes;}catch(Exceptionex){CusExceptioncex=newCusException(ex

c# - PropertyInfo.GetValue() - 如何在 C# 中使用反射索引通用参数?

这个(缩短的)代码..for(inti=0;i..抛出“TargetParameterCountException:参数计数不匹配”异常。'propertyInfo'的基础类型是一些T的集合。'count'是集合中的项目数。我需要遍历集合并对obj执行操作。感谢您的建议。 最佳答案 反射一次只在一个层面上起作用。您正在尝试对属性进行索引,这是错误的。相反,读取属性的值,以及您返回的对象,即您需要索引的对象。这是一个例子:usingSystem;usingSystem.Collections.Generic;usingSystem.R

c# - 如何在 int 列表中找到满足某些条件的项目的索引?

我有一个包含项目{10、11、23、34、56、43}的int列表,我想找出所有大于23的项目的索引。这些值可以是任何顺序,所以我这样做不想对它们进行排序。Listmylist=newList{10,11,23,34,56,43};我对满足条件的所有项目的索引感兴趣,而不仅仅是满足条件的第一个项目。所以这行代码对我不起作用。intindex=mylist.FindIndex(x=>x>23); 最佳答案 varindexes=mylist.Select((v,i)=>new{v,i}).Where(x=>x.v>23).Select