【C#图解教程 第十二章 数组】教程文章相关的互联网学习教程文章

一次填充具有多个值的C#struct数组【代码】

我有一个结构数组,如下所示:public struct DATA{public int number;public int channel;public string filename;public string description;}DATA[] myData = new DATA[12];我需要在这里填写很多值,例如myData [0] = {0,1,“myfile”,“TBD”}等. 使用数据填充这12个结构的最简单方法(就LOC而言)是什么?使用课程会更容易吗?解决方法:执行此操作的C方法不起作用.DATA[] myData = new DATA[]{{1,3,"asdasd","asdasd"}, {...您必须...

c# – 指向Byte []数组的不安全Int32指针【代码】

我有一个字节数组,我想通过Int32指针访问(不安全的上下文).我这样做byte[] bgImageBytes = new byte[1000]; unsafe {fixed (byte* bgImgPtr = bgImageBytes){// I have a byte pointer ... How can I get an Int32 pointer?} }我已经将从kernel32.dll返回的指针作为Byte和Int32指针访问,没有任何问题.但是当我尝试在托管字节数组上创建一个Int32指针时(上面的示例),它似乎抱怨它是托管代码,所以它不起作用. 简单地做UInt32 * bgImg...

c# – 指向通用类型数组的指针?【代码】

参见英文答案 > C#: Using a generic to create a pointer array 2个我想创建一个泛型方法,该方法使用指向T数组的指针,其中T可以是C#原语,也可以是C#类.我一直很好,直到我尝试了“T”部分. 有没有办法解决错误“无法声明指向非非托管类型TIn的指针” 我尝试通过“fixed”关键字使用固定来实现这一点.public static object DoSomething<TIn, TOut>(object SObj, Action<TIn, TOut> takeAction){...

C#从数组集合中删除“部分”重复项【代码】

我试图找到问题的答案,但我被困了.我有数组的集合,需要删除一些属性相同的记录. 例:我有属性 – BeginTime,EndTime,Date,Price.07:00, 11:00, 2011-11-14, 90 08:00, 12:00, 2011-11-14, 110 07:00, 11:00, 2011-11-15, 120 07:00, 11:00, 2011-11-14, 50我想删除BeginTime,EndTime和Date相同且Price不是最低的记录.在此示例中,删除的记录将是第一个. 感谢您的任何帮助或建议解决方法:如何使用LINQ:IEnumerable<Bar> bars = ......

C#中的字符串数组【代码】

我在字符串数组中插入字符串元素时遇到问题…例如,我有三个赋值行:a = b b = c c = e然后我想在string []变量中插入这六个变量. 我使用以下代码,但此代码仅插入最后一个赋值变量(c,e).for (int i = 0; i < S; i++) // S = 3 number of assignment line {variables = assigmnent_lines[i].Split('='); }解决方法: List<string> this_is_a_list_of_strings = new List<string>(); foreach (string line in assignment_lines) {this...

c# – Linq与数组相交【代码】

我从db获取表标签. 该表具有列ID和TagName 我正在做这样的事情来得到一个字符串列表:var taglist = Model.Tags.Select(x => x.TagName.ToLower()).ToArray();然后我正在与另一个字符串数组进行比较以获取两者中出现的字符串:var intersectList = tagList.Intersect(anotherList);我有我的列表,但现在我还想要交叉列表中与tagList相对应的每个项目的ID. (可以只是一个int数组) 任何人都可以帮助一个好方法来做到这一点?解决方法:...

c# – 是否有可能有一个Func的param数组【代码】

类似下面的结构可能吗?public IQueryable<T> AllWithFetch<TRelated>(IQueryable<T> existing, params Expression<Func<T, TRelated>>[] fetchExpressions){return fetchExpressions.Aggregate(existing, (current, exp) => current.Fetch(exp));}然后可以像这样调用……var allDetails = this.preGrantDetailRepository.AllWithFetch(this.preGrantDetailRepository.All, x => x.Case, x => x.CaseOwner)基本上我试图将NHibernat...

c# – 如何使用不同类型的单个元素创建类型安全的数组或集合?

我正在C#中实现一个方法,它接受一个类型为object的参数,例如SomeMethod(对象参数).我需要将不同类型的多个对象的集合传递给此方法.由于接口限制,我无法更改方法签名. 我在考虑发送一个对象数组,object [] myArray = new object [2],但是如果可能的话我想强烈地键入数组的每个元素.例如,我有两个对象,一个是Foo类型,另一个是Bar.我想保证myArray [0]是Foo而myArray [1]是Bar. 我该怎么做?另一个集合类型或创建特殊类会更有意义吗?...

c# – 数组和列表与结构的差异【代码】

在以下代码中,从数组和列表中获取结构.按索引获取项目时,数组似乎通过引用执行,而列表似乎按值执行.有人可以解释这背后的原因吗?struct FloatPoint {public FloatPoint (float x, float y, float z) {this.x = x;this.y = y;this.z = z;}public float x, y, z; }class Test {public static int Main (string[] args) {FloatPoint[] points1 = { new FloatPoint(1, 2, 3) };var points2 = new System.Collections.Generic.List<Flo...

c# – 在比较两个不同长度的整数数组时提高性能【代码】

我有一个瓶颈(或至少我认为我可以做得更好的一个区域)这个比较器,它基本上是一个序数字符串比较器,但对整数(ushort,虽然我认为这不重要)数组. 数组的长度可以不同,但??只有元素[0..n],其中n是最短数组匹配的长度,长度才有意义.在这种情况下,较长的阵列被认为是“更大”. 1 2 3< 1 2 41 2 3 5< 1 2 41 2 5 3> 1 2 41 2 3 4> 1 2 3public int Compare(ushort[] x, ushort[] y){int pos = 0;int len = Math.Min(x.Length, y.Length);w...

c# – 使用字符串数组填充ObservableCollection【代码】

所有, 这里需要一些帮助..我有一个字符串数组,需要将其绑定到ObservableCollection 提前致谢.解决方法:ObservableCollection< T> class可以接收IEnumerable< T>在构造函数上.你可以像这样使用它:string[] items = ... ObservableCollection<string> observableItems = new ObservableCollection<string>(items);编辑:如果你的数组将来发生变化,你的ObsevableCollection将不会.如果您需要,请在您的问题中指明.

c# – 如何从字节数组中删除BOM【代码】

我在byte [] byteArray中有xml数据,可能包含也可能不包含BOM. C#中是否有任何标准方法可以从中删除BOM?如果没有,那么处理包括所有类型编码在内的所有情况的最佳方法是什么呢? 实际上,我正在修复代码中的错误,我不想更改大部分代码.所以如果有人能给我删除BOM的代码会更好. 我知道我可以找到60这是’<的ASCII值并在此之前忽略字节但我不想这样做.解决方法:所有C#XML解析器都会自动为您处理BOM.我建议使用XDocument – 在我看来它...

c# – 多维数组,由向量访问的元素【代码】

.Net中是否有任何多维数组/集合/任何数据类型,其中的元素可以通过向量访问(容易改变维数)?像这样(C#):var array = new Smth<double>(capacity: new int[] {xCap, yCap, zCap}); array[new int[] {x, y, z}] = 10.0;澄清一下:没有必要解释如何手动编写这样的数据类型. Upodate: 我的意思是在创作之前而不是之后变化.// 3D array var array = new Smth<double>(capacity: new int[] {xCap, yCap, zCap}); array[new int[] {x, y,...

c# – 编写代码以遍历所有数组元素的最快方法【代码】

很多时候我需要循环遍历数组的所有项目.如果它是List我将使用ForEach扩展方法. 我们对数组也有类似的东西吗? 对于.例如假设我要声明一个128和128的bool数组.将所有成员初始化为true.bool[] buffer = new bool [128];可能会有更多用例 现在将其初始化为true.有没有任何扩展方法或我需要编写传统的foreach循环?解决方法:您可以创建一个扩展方法来初始化一个数组,例如:public static void InitAll<T>(this T[] array, T value) {fo...

c# – 从JavaScript数组创建接口类型列表【代码】

假设有一个简单的界面:public interface ISerialize{string FirstProp { get; set; }string SecondProp { get; set; }}这是由类实现的:public class Class1 : ISerialize{public string FirstProp { get; set; }public string SecondProp { get; set; }public string ThirdProp { get; set; }}public class Class2 : ISerialize{public string FirstProp { get; set; }public string SecondProp { get; set; }public string Four...