Tag: 索引

如何在测试期间处理陈旧的索引?

我在内存模式下使用RavenDB进行unit testing。 我的查询由静态索引支持。 我没有使用WaitForNonStaleResults() API(我也不想)。 测试的典型工作流程是: 在In-Memory模式下初始化RavenDB 使用IndexCreation.CreateIndexes(Assembly, IDocumentStore)集成索引 插入测试数据(用于validation查询行为) 运行查询 validation查询输出 我注意到步骤1-3发生得如此之快,静态索引没有时间在步骤4之前得到更新 – 因此索引是陈旧的。 我为此创建了一个快速的解决方案。 在第3步之后,我执行: while (documentStore.DocumentDatabase.Statistics.StaleIndexes.Length != 0) Thread.Sleep(10); 这感觉很麻烦。 我想知道的是: 在In-Memory模式下运行RavenDB时,索引是否过时是正常的? 在测试期间是否有更好的方法来避免过时的索引?

在C#中使用枚举作为数组索引

我想在这个问题上做同样的事情,那就是: enum DaysOfTheWeek {Sunday=0, Monday, Tuesday…}; string[] message_array = new string[number_of_items_at_enum]; … Console.Write(custom_array[(int)DaysOfTheWeek.Sunday]); 但是,我宁愿有一些不可或缺的东西,而不是写这个容易出错的代码。 C#中是否有内置模块可以做到这一点?

如何在C#中获取列表中新添加项的索引?

当我将一个项目(一个类的实例)添加到列表中时,我需要知道新项目的索引。 是否可以使用任何function? 示例代码: MapTiles.Add(new Class1(num, x * 32 + cameraX, y * 32 + cameraY));

对基于索引的排序是否有C#支持?

是否有任何内置的C#支持进行索引排序? 更多细节: 我有几组数据存储在单个通用的double列表中。 这些列表的长度始终相等,并保存相应的数据项,但这些列表是动态来来去去的,所以我不能只是干净地将相应的数据项存储在类或结构中。 (我也在处理一些遗留问题。) 我需要能够从任何一个数据集中对这些键控进行排序。 我想到最好的方法是添加一个间接层,并使用基于索引的排序。 这种类型已经使用多年了。 基于索引的排序的快速定义: 使“index”,一个与列表长度相同的连续整数数组,然后排序算法对整数列表进行排序,以便任何anylist[index[N]]按排序顺序给出任何列表的第N项。 列表本身永远不会被重新订购。 是否有任何内置的C#支持进行索引排序? 我一直无法找到它……我发现的所有东西都重新整理了这个系列。 我的猜测是支持存在,但我还没有找到正确的地方。 我在Windows下使用C#.NET 3.5。

C#Lucene获得所有索引

我正在使用Lucene处理Windows应用程序。 我想获取所有索引关键字并将其用作搜索字段上的自动建议的来源。 如何在Lucene中收到所有索引关键字? 我是C#的新手。 代码本身表示赞赏。 谢谢。

C#StructLayout / FieldOffset和数组索引

我在使用FieldOffset时遇到了一些问题。 下面的代码是一个例子,它对我不起作用: [StructLayout(LayoutKind.Explicit)] public struct IndexStruct { [FieldOffset(0)] public byte[] data; [FieldOffset(0)] public short[] idx16; [FieldOffset(0)] public int[] idx32; } 例如,如果我将名为“data”的数组设置为序列化字节数组,然后尝试使用“idx16”字段将数据检索为short,则索引仍然作为byte []对齐。 这意味着idx16 1获取数据中的第二个字节,而不是第二个16位字(字节2和3)。 如果我执行逆I索引短路而不是字节,这意味着偏移对齐是从源数据inheritance的。 我的问题是,有办法解决这个问题吗? 我知道我可以通过乘以元素的大小来补偿索引值,但还有另一种方法吗? 这是我在StackOverflow上找到的答案,但是当尝试该代码时,结果certificate它无法正常工作。 使用以下代码在VS中使用unit testing尝试使用它,但没有成功: [TestMethod()] public void SumTest() { float[] fArr = {2.0f, 0.5f, 0.0f, 1.0f}; MemoryStream ms = new MemoryStream(); for (int i = 0; i < fArr.Length; […]

编辑8bpp索引位图

我正在尝试编辑8bpp的像素。 由于此PixelFormat已编制索引,我知道它使用颜色表来映射像素值。 即使我可以通过将位图转换为24bpp来编辑位图,但8bpp编辑速度要快得多(13ms vs 3ms)。 但是,在访问8bpp位图时更改每个值会导致一些随机的rgb颜色,即使PixelFormat仍为8bpp。 我目前正在开发c#,算法如下: (C#) 1-将原始位图加载到8bpp 2-创建具有8bpp的空温度位图,其大小与原始尺寸相同 两个位图的3-LockBits,使用P / Invoke调用c ++方法,我传递每个BitmapData对象的Scan0。 (我使用了c ++方法,因为它在迭代Bitmap的像素时提供了更好的性能) (C ++) 4-根据一些参数创建一个int [256]调色板,并通过将原始像素值传递到调色板来编辑临时位图字节。 (C#) 5- UnlockBits。 我的问题是如何在没有奇怪的rgb颜色的情况下编辑像素值,甚至更好地编辑8bpp位图的颜色表?

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

是否有一个命令可以获取字符串中字符的第三个索引? 例如: error: file.ext: line 10: invalid command [test:)] 在上面的句子中,我想要第3个冒号的索引,10个旁边的那个。我怎么能这样做? 我知道string.IndexOf和string.LastIndexOf,但在这种情况下我想得到第三次使用时字符的索引。

使用Entity Framework创建数据库索引

说我有以下型号: [Table(“Record”)] public class RecordModel { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] [Display(Name = “Record Id”)] public int RecordId { get; set; } [StringLength(150)] public string Name { get; set; } [Required] [StringLength(15)] public string IMEI { get; set; } } 是否可以通过使用属性,数据注释或模型中的某些内容向IMEI列添加索引?