草庐IT

l_velocity_Array

全部标签

c# - Array.Count() 比 List.Count() 慢得多

使用IEnumerable的扩展方法时Count(),数组至少比列表慢两倍。FunctionCount()List2,299int[]6,903差异从何而来?我知道两者都在调用CountICollection的属性(property):IfthetypeofsourceimplementsICollection,thatimplementationisusedtoobtainthecountofelements.Otherwise,thismethoddeterminesthecount.对于列表,它返回List.Count,对于数组,Array.Length.此外,Array.Len

c# - Array.Copy 是否适用于多维数组?

这段代码工作正常:varnewArray=newRectangle[newHeight,newWidth];for(intx=0;x=width)||(y>=height)?Rectangle.Empty:tiles[y,x];但我不太幸运用Array.Copy替换它。基本上,如果调整大小的数组更大,它只会在边缘添加空白矩形。如果它更小,那么它应该只切掉边缘。执行此操作时:Array.Copy(tiles,newArray,newWidth*newHeight);它打乱了数组,它的所有内容变得无序并且不保留它们的原始索引。也许我只是在胡思乱想什么的? 最佳答

c# - 如何向 Array.IndexOf 添加不区分大小写的选项

我有一个字符串stringstr="hello";这是我的数组string[]myarr=newstring[]{"good","Hello","this","new"};我需要从数组中找到“hello”的索引(不使用循环)所以我用过intindex=Array.IndexOf(myarr,str);这会返回-1,但我期望结果为1。我什至尝试过StringComparer.OrdinalIgnoreCase但无济于事。希望有人能帮忙。谢谢。 最佳答案 注意!!标记的答案可能有一些问题,例如stringarray[]={"hello"

c# - 编译器错误 : Invalid rank specifier: expected' ,' or ' ]' on Two Dimensional Array Initialization

我有一个要用C#完成的类(class)作业。作为一个完整的C#新手,我首先用Java完成了这个项目,现在我正在尝试将它转换为C#。我有以下函数导致以下编译器错误。错误:无效的排名说明符:预期的','或']'在以下行:int[][]grid=newint[g.cols][g.rows];VisualStudio在g.rows的g下划线publicint[][]getConvergenceCounts(MandelbrotGridg){int[][]grid=newint[g.cols][g.rows];for(intx=0;x我不知道我在这里做错了什么,阅读C#中的多维数组似乎没有帮助。

c# - IsNullOrEmpty 等同于 Array? C#

.NET库中是否有一个函数可以返回true或false,以判断数组是null还是空?(类似于string.IsNullOrEmpty)。我在Array类中查看了这样的函数,但没有看到任何内容。即vara=newstring[]{};string[]b=null;varc=newstring[]{"hello"};IsNullOrEmpty(a);//returnstrueIsNullOrEmpty(b);//returnstrueIsNullOrEmpty(c);//returnsfalse 最佳答案 没有现成的,但你可以使用这个扩

c# - 为什么 List.Sort() 是实例方法而 Array.Sort() 是静态的?

我试图理解这部分语言背后的设计决策。我承认我对这一切都很陌生,但这最初让我感到困惑,我想知道我是否遗漏了一个明显的原因。考虑以下代码:ListMyList=newList(){5,4,3,2,1};int[]MyArray={5,4,3,2,1};//SortthelistMyList.Sort();//Thiswasaninstancemethod//SorttheArrayArray.Sort(MyArray);//Thiswasastaticmethod为什么它们不以相同的方式实现-凭直觉对我来说,如果它们都是实例方法会更有意义? 最佳答案

c# - 将 System.Array 转换为字符串 []

我有一个System.Array,我需要将其转换为字符串[]。有没有比循环遍历数组、对每个元素调用ToString并保存到string[]更好的方法呢?问题是在运行时之前我不一定知道元素的类型。 最佳答案 使用LINQ怎么样?string[]foo=someObjectArray.OfType().Select(o=>o.ToString()).ToArray(); 关于c#-将System.Array转换为字符串[],我们在StackOverflow上找到一个类似的问题:

C# Array.Contains() 编译错误

我正在尝试在C#中使用Array.Contains()方法,但由于某种原因它无法编译,尽管我相信我使用的是C#4.0,而C#应该在3.0及更高版本中支持它。if(!args.Contains("-m"))Console.WriteLine("Youmustprovideamessageforthiscommit.");我得到这个错误:Main.cs(42,15):errorCS1061:'System.Array'doesnotcontainadefinitionfor'Contains'andnoextensionmethod'Contains'acceptingafirstargu

c# - Linq Count() 比 List.Count 或 Array.Length 快还是慢?

是LINQCount()任何比List.Count更快或更慢的方法或Array.Length? 最佳答案 一般较慢。LINQ的计数一般是O(N)运行时List.Count和Array.Length都保证是O(1).然而,在某些情况下,LINQ会将IEnumerable作为特殊情况通过转换为某些接口(interface)类型的参数,例如IList或ICollection.然后它将使用该Count方法执行实际的Count()。手术。所以它会回到O(1).但是您仍然需要支付转换和接口(interface)调用的少量开销。

c# - 如何在 C# 中将 Array 转换为 List<object>?

如何转换Array到List在C#中? 最佳答案 Listlist=myArray.Cast().ToList();如果数组元素的类型是引用类型,可以省略.Cast()因为C#4添加了接口(interface)协方差,即IEnumerable可以被视为IEnumerable.Listlist=myArray.ToList(); 关于c#-如何在C#中将Array转换为List?,我们在StackOverflow上找到一个类似的问题: https://stack