草庐IT

可变数组

全部标签

c# - 带有字符串数组的 URL.Action?

我有一个字符串数组,我需要在Url.Action的查询字符串中传递这些字符串。Url.Action("Index","Resource",new{FormatIds=Model.FormatIDs})现在链接在我的浏览器中显示为System.String[]而不是查询字符串。是否可以让MVC通过模型绑定(bind)自动执行此操作?我需要它与我的Controller操作绑定(bind),例如:publicActionResultIndex(string[]formatIDs) 最佳答案 要使用默认绑定(bind)器获取要自动绑定(bi

c# - 获取在 C# 中转换为动态的数组的计数

考虑这段代码:staticvoidMain(string[]args){varints=newList{10,11,22};Something(ints);//Output:Countis:3Something(newint[10]);//'System.Array'doesnotcontain//adefinitionfor'Count'Console.ReadLine();}staticvoidSomething(ICollectioncollection){dynamicdynamic=collection;Console.WriteLine("Countis:{0}",dyna

c# - 有没有一种简单的方法来制作类的不可变版本?

有没有一种简单的方法可以使实例不可变?举个例子,我有一个包含很多数据字段的类(只有数据,没有行为):classMyObject{//lotsoffieldspainfultoinitializeallatonce//sowemakefieldsmutable:publicStringTitle{get;set;}publicStringAuthor{get;set;}//...}创建示例:MyObjectCreationExample(StringsomeParameters){varobj=newMyObject{Title="foo"//lotsoffieldsinitializa

容量超过 Int.MaxValue 的 C# 数组

我想知道C#中是否有任何结构可以包含超过Int.MaxValue的2,147,483,647项限制,以防信息集非常大。这必须用多级阵列来完成吗?或者您能否创建一个最大长度为Long.MaxValue的数组?如果是,怎么办? 最佳答案 完成了,一个样例BigArray实现ishere. 关于容量超过Int.MaxValue的C#数组,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3

c# - 使用 StartsWith 将值与字符串数组进行比较

我有一个数组:string[]exceptions=newstring[]{"one",two","one_1","three"};..我想说:varresult=fromcinmyCollectionwherenotc.Property[3].Value.StartWith(exceptions)selectc;所以我希望过滤myCollection以仅显示那些Property[3].Value不StartWith异常数组中的一个值。我知道StartsWith不接受集合,所以我不确定这是否可以通过LINQ实现。这在LINQ中可能吗?!还是我试图将我的问题硬塞进LINQ解决方案中?编辑

c# - 在没有不可变字段的类中覆盖 Object.GetHashCode() 时返回什么?

好吧,在你因为互联网上发布了数百个听起来相似的问题而生气之前,我可以向你保证,我刚刚花了最后几个小时阅读了所有并且没有找到了我的问题的答案。背景:基本上,我的一个大型应用程序一直遇到这样一种情况,即ListBox.SelectedItem属性上的某些Binding会停止工作,或者程序会在之后崩溃对当前选定的项目进行了编辑。我最初问'Anitemwiththesamekeyhasalreadybeenadded'ExceptiononselectingaListBoxItemfromcode在这里提问,但没有得到答案。直到本周我才有时间解决这个问题,当时我有几天时间来解决它。现在长话短说

c# - string.Join 需要采用数组而不是 IEnumerable 的原因是什么?

正如标题所说:为什么string.Join需要采用数组而不是IEnumerable?这让我很烦,因为当我需要从LINQ表达式的结果创建一个连接的字符串时,我必须添加一个.ToArray()。我的经验告诉我,我在这里遗漏了一些明显的东西。 最佳答案 升级到.NET4.0并使用overload接受IEnumerable.否则,只能接受这是一个长期悬而未决的问题,直到.NET4.0才得到解决。您也可以通过创建自己的扩展方法来解决这个问题!publicstaticclassStringEnumerableExtensions{publics

c# - 将锯齿状数组的值克隆到第二个数组中的极快方法?

我目前正在开发一个应用程序,该应用程序负责计算锯齿状数组的随机排列。目前,应用程序中的大部分时间都花在每次迭代中复制数组上(总共100万次迭代)。在我当前的系统上,整个过程需要50秒才能完成,其中39秒用于克隆阵列。我的阵列克隆程序如下:publicstaticint[][]CopyArray(thisint[][]source){int[][]destination=newint[source.Length][];//ForeachRowfor(inty=0;y有没有安全或不安全的方法可以更快地达到与上述相同的效果? 最佳答案 这

c# - 通过反射在数组中设置值

有没有办法在C#中通过反射在数组属性中设置单个值?我的属性是这样定义的:double[]Thresholds{get;set;}对于“普通”属性,我使用这段代码通过反射来设置它:PropertyInfopi=myObject.GetType().GetProperty(nameOfPropertyToSet);pi.SetValue(myObject,Convert.ChangeType(valueToSet,pi.PropertyType),null);我将如何更改此代码以在任意位置设置数组属性中的值?谢谢!顺便说一句:我尝试使用索引参数,但这似乎只适用于索引属性,不适用于数组属性.

c# - 如何将字节数组转换为字符串?

这个问题在这里已经有了答案:HowtoconvertUTF-8byte[]tostring(16个答案)关闭6年前。我有一个字节,它是一个30字节的数组,但是当我使用BitConverter.ToString时它显示十六进制字符串。字节是0x42007200650061006B0069006E00670041007700650073006F006D0065。这也是Unicode格式。这意味着B.r.e.a.k.i.n.g.A.w.e.s.o.m.e,但我不确定如何将它从十六进制转换为Unicode到ASCII。