Tag: arrays

如何在F#中定义T 的类型扩展名?

在C#中,我可以为类型为T的generics数组定义一个扩展方法,如下所示: public static T GetOrDefault(this T[] arr, int n) { if (arr.Length > n) { return arr[n]; } return default(T); } 但对于我的生活,我无法弄清楚如何在F#中做同样的事情! 我尝试type ‘a array with , type array with并type ‘a[] with ,编译器对它们中的任何一个都不满意。 任何人都可以告诉我在F#中这样做的权利是什么? 当然,我可以通过掩盖arrays模块并为此轻松添加function来实现这一点,但我真的想知道如何将其作为扩展方法!

JSON反序列化为构造的受保护的setter数组

我使用Newtonsoft JSON来序列化/反序列化我的对象。 其中一个包含一个带有受保护的setter的数组,因为构造函数构建了数组本身,只有成员被操纵。 这可以没有问题地序列化,但是当反序列化时,它被忽略,因为它不是公共的。 我尝试了一个自定义转换器,它也没有被调用,因为它不公开。 这是一个最小化的例子: public static class TestCoordsDeserialization { private class Coords { public Double X { get; set; } public Double Y { get; set; } public Double Z { get; set; } public Double A { get; set; } } private class Engine { public string Text { get; set; } […]

将DataColumn值转换为字符串数组时的最佳做法?

将DataColumn值转换为字符串数组时的最佳做法? [编辑]某些DataColumn的所有值,以便将所有DataTable行转换为字符串数组?

C#:将数组拆分为n个部分

我有一个字节列表,我想将此列表拆分为较小的部分。 var array = new List {10, 20, 30, 40, 50, 60}; 此列表有6个单元格。 例如,我想将它分成3个部分,每个部分包含2个字节。 我曾尝试编写一些for循环并使用2D数组来实现我的目的,但我不知道这是一种正确的方法。 byte[,] array2D = new byte[window, lst.Count / window]; var current = 0; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { array2D[i, j] = lst[current++]; } }

如何在C#中将ArrayList转换为字符串数组(string )

如何在C#中将ArrayList转换为string[] ?

WCF:序列化为数组的通用列表

所以我正在使用WCF和我的服务返回包含通用列表的类型。 WCF目前正通过线路将这些转换为arrays。 有没有办法配置WCF以后再将它们转换回列表? 我知道在添加服务引用时单击高级有一种方法,但我正在寻找配置文件或类似的解决方案。 [DataContract(IsReference = true)] public class SampleObject { [DataMember] public long ID { get; private set; } [DataMember] public ICollection Objects { get; set; } } 这也很奇怪,因为一个服务将其作为列表返回,另一个服务作为数组返回,我很确定它们的配置相同。

C#:非零的数组不符合CLS

我现在正在阅读Albahari的C#3.0 in a Nutshell and pg。 241,在谈论数组索引时,他说: 基于非零的数组不符合CLS(公共语言规范) 对于非零数组不符合CLS ,这究竟意味着什么? 它对你的代码有什么影响? [更新] 这是该书页面的链接。

c#generic,包括数组和列表?

这是一个非常方便的扩展,适用于任何array : public static T AnyOne(this T[] ra) where T:class { int k = ra.Length; int r = Random.Range(0,k); return ra[r]; } 不幸的是,它不适用于List的任何东西。 这是适用于任何List的相同扩展名 public static T AnyOne(this List listy) where T:class { int k = listy.Count; int r = Random.Range(0,k); return listy[r]; } 事实上,是否有一种方法可以一次性推广包含array和List s的generics? 还是知道不可能? 它发生在我身上,答案甚至可以进一步包含Collection s? 或者确实有下面的专家之一已经实现了?? PS,我很抱歉没有明确提到这是在Unity3D环境中。 “Random.Range”是一个统一到骨骼的function,“AnyOne”调用将100%的游戏引擎读作任何游戏工程师。 这是你为任何游戏项目输入的第一个扩展,并且你经常在游戏代码中使用它(“任何爆炸!”“任何硬币声音效果!”等等!) 显然,它当然可以在任何c#milieu中使用。

如何动态设置c#中的数组长度

我还是C#的新手,我一直在努力解决arrays上的各种问题。 我有一组元数据对象(名称值对),我想知道如何只创建我真正需要的“InputProperty”对象的数量。 在这个循环中,我任意设置元素的数量为20,当条目变为null时我试图挽救但是接收端的Web服务不喜欢传递给它的任何null元素: private Update BuildMetaData(MetaData[] nvPairs) { Update update = new Update(); InputProperty[] ip = new InputProperty[20]; // how to make this “dynamic” int i; for (i = 0; i < nvPairs.Length; i++) { if (nvPairs[i] == null) break; ip[i] = new InputProperty(); ip[i].Name = "udf:" + nvPairs[i].Name; ip[i].Val = nvPairs[i].Value; } update.Items = […]

整数到整数数组C#

我不得不将int“123456”的每个值拆分为Int [],我已经有了解决方案,但我不知道有没有更好的方法:我的解决方案是: public static int[] intToArray(int num){ String holder = num.ToString(); int[] numbers = new int[Holder.ToString().Length]; for(int i=0;i<numbers.length;i++){ numbers[i] = Convert.toInt32(holder.CharAt(i)); } return numbers; }