【C#中的索引器原理】教程文章相关的互联网学习教程文章

c# – 二进制搜索算法的扩展,用于查找要在数组中搜索的键值的第一个和最后一个索引【代码】

问题是扩展二进制搜索算法以最有效的方式查找排序数组中所有出现的目标值.具体地说,算法的输入是(1)整数的排序数组,其中一些数字可能出现不止一次,以及(2)要搜索的目标整数.算法的输出应该是一对索引值,指示数组中第一次和最后一次出现的整数(如果确实发生的话).源代码可以在c#,c,c中. 此外,我们可能需要查找索引的最大和最小比较数是多少?解决方法:如果你有点聪明,你可以定义两个不同的二进制搜索功能.一个将返回搜索值的第一个外...

总是超出C#数组索引【代码】

我在C#中遇到了一个非常奇怪的问题,我不确定是什么原因.看一下下面的代码片段:foreach(string bed in bayBeds) {string[] bedProperties = bed.Split(new char[] { '^' });if (bedProperties.Length > 0){string genderCode = bedProperties[1];if (genderCode == "M"){bedCount = bedCount + bayBeds.Count;break;}} }在此示例中,测试字符串数组bedProperties以查看其长度是否大于0,如果是,则检索元素1.问题是这段代码总是会产生...

c# – 如何从数组中查找字符串索引(前三个字符)【代码】

我想找到一个字符串的索引只为数组中的前三个字符 我有一个月的数组string[] arrayEnglishMonth = { "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER" };如果我写int t_ciMonth=8;(AUGUST)int pos = Array.IndexOf(t_caMonth, arrayEnglishMonth[t_ciMonth - 1]);但是,如果我只希望索引只有前三个字符,即AUG如何找到它?解决方法:你有两个我能想到的选...

c# – 泛型类型的索引器约束【代码】

是否可以创建一个类型必须具有索引器的泛型类/方法? 我的想法是让以下两种扩展方法适用于使用索引器获取和设置值的任何类型,但似乎无法找到任何关于它的内容.只有关于使索引器本身通用的东西,这不是我追求的……public static T GetOrNew<T>(this HttpSessionStateBase session, string key) where T : new(){var value = (T) session[key];return ReferenceEquals(value, null) ? session.Set(key, new T()) : value;}public sta...

c# – 当多线程时,循环索引超出范围ArgumentOutOfRangeException【代码】

我得到了一些奇怪的行为……当我在ThreadTest方法中迭代dummyText List时,我得到一个超出范围异常的索引(ArgumentOutOfRangeException),但是如果我删除了线程并且我只是打印出文本,那么一切正常精细. 这是我的主要方法:public static Object sync = new Object(); static void Main(string[] args) {ThreadTest();Console.WriteLine("Press any key to continue.");Console.ReadKey(); }此方法抛出异常:private static void Thre...

c# – 如何获取包含字符串的列表索引【代码】

我有一个List< string>我检查它是否包含一个字符串:if(list.Contains(tbItem.Text))如果这是真的,我这样做:int idx = list.IndexOf(tbItem.Text)但是,如果我有两个相同的字符串怎么办?我想获得具有此字符串的所有索引,然后使用foreach循环遍历它.我怎么能这样做?解决方法:假设列表是List< string>:IEnumerable<int> allIndices = list.Select((s, i) => new { Str = s, Index = i }).Where(x => x.Str == tbItem.Text).Select...

c# – 如何在.Net 2.0中查找List中字符串的索引【代码】

我试图获取List中字符串的索引号.我尝试了以下代码:List<string> Markets = new List<string>() {"HKG", "TYO", "NSE", "STU", "FRA", "LON", "SIN", "MIL", "TSE", "ASX", "STO", "AEX", "MEX", "NSE", "EPA", "SWX", "CVE", "BRU", "SWX"}; int index = Markets.FindIndex("HKG");出现以下错误:The best overloaded method match for ‘System.Collections.Generic.List.FindIndex(System.Predicate<string>)’ has some inval...

c# – 如何获取ListBox中的项目索引?【代码】

我正在向ListBox添加项目,如下所示:myListBox.Items.addRange(myObjectArray);我还想选择以下添加的一些项目:foreach(MyObject m in otherListOfMyObjects) {int index = myListBox.Items.IndexOf(m);myListBox.SelectedIndices.Add(index); }但索引总是-1. 是否有不同的方法来获取ListBox中的对象的索引?解决方法:您应该确保MyObject重写Equals(),GetHashCode()和ToString(),以便IndexOf()方法可以正确地找到对象. 从技术上讲...

C# – 1 2 4 8 16 32 64 … series – 根据输入数字,递归函数查找索引?【代码】

我有一系列的数字:[1 2 4 8 16 32 64 128],如果我输入一个数字,即66,那么输出应该是64和2.如果我输入87,那么输出应该是64, 16,4,2,1. (基本上,它首先除以最大可能的数字,找到余数,然后继续除以可能的最大数,直到余数为0.或者另一种方式可能只是减去最大可能的数字并继续减去它直到达到0) 我正在考虑一个递归函数,但不是很确定.有帮助吗? 谢谢.解决方法:这是迭代版本public static IEnumerable<int> FindIndex(int input) {var po...

c# – 使用foreach(…)语法,同时在循环内增加索引变量【代码】

在查看C#代码时,我经常会看到这样的模式:DataType[] items = GetSomeItems(); OtherDataType[] itemProps = new OtherDataType[items.Length];int i = 0; foreach (DataType item in items) {// Do some stuff with item, then finallyitemProps[i] = item.Prop;i++; }for循环遍历项目中的对象,但也保持计数器(i)以迭代itemProps.我个人不喜欢这种额外的闲逛,而是可能做的事情如下:DataType[] items = GetSomeItems(); OtherData...

c# – 在数组中搜索特定数字的特定索引【代码】

嗨,有一种方法可以检查C#中特定数字的特定整数数组索引;例如,我希望工作的将是:if(si[6] || si[7] || si[8] == 3){MessageBox.Show("3 detected")}else{continue();{显然这不起作用.有干净的方法吗?谢谢你的期待.解决方法: var indexes = new int[] {6, 7, 8}; if (indexes.Any(i => si[i] == 3)) {MessageBox.Show("3 detected") }

c# – 通过字符串索引访问List【代码】

如果我有List<MyClass> MyObj;我可以访问这样的特定成员:MyObj[0] = new MyClass();但前段时间,在msdn的某个地方我读过,可以像这样访问我的对象:MyObj["mykey"] = new MyClass();这可能吗,还是我在这里做事?解决方法:在List中它是不可能的,因为它只有int indexer(this [int index])允许通过索引获取对象. 为此你应该使用Dictionary< string,MyClass>,这将允许你按键获取对象,例如:MyDictionary["MyKey"] = new MyClass();MSDN ...

c# – ravendb索引,查询子集合【代码】

我想得到所有产品的摘要,因为只有最新的OrderHistory是我想要使用它的地方.我有成千上万的产品,每个产品都有数百个OrderHistory,但现在我只想要每个产品的产品ID和最新的OrderHistory.public class ProductSummary {public int ProductId { get; set; }public OrderHistory LastOrderHistory { get; set; } }OrderHistory存储在Product文档中,如下所示:public class Product {public int Id { get; set; }public int MarketGroupI...

c# – 使用带有垂直系列的Mappers.Xy时如何访问索引?【代码】

我正在尝试使用基于双精度的垂直系列来理解Mappers.XY类.为了测试它,我希望Y轴的所有偶数索引都是红色填充但是.Fill似乎只使用X值.这是我的代码和结果:var RedBrush = new SolidColorBrush(Color.FromRgb(238, 83, 80));Mapper = Mappers.Xy<double>().X((value, index) => value).Y((value, index) => index).Fill(index => index % 2 == 0 ? RedBrush : null).Stroke(index => index % 2 == 0 ? RedBrush : null);只有当X值如此...

jObject属性的索引不起作用c#【代码】

我正在将比特币事务字符串解析为JObject(它是JSON格式)并且想要在JSON字符串中引用prev_out哈希值和第二个值(请参阅下面的示例).正如你在下面看到的,我试图使用索引获取属性值,但我一直得到null.请帮忙! 典型的JSON字符串是什么样的:{"hash" : "4ebf7f7ca0a5dafd10b9bd74d8cb93a6eb0831bcb637fec8e8aabf842f1c2688","ver" : 1,"vin_sz" : 1,"vout_sz" : 2,"lock_time" : 0,"size" : 225,"in" : [{"prev_out" : {"hash" : "bf7d91...