可能重复:
阵列与列表的性能
我想知道哪一个是更好的方法来完成这项任务.
string[] week = new string[7]
week[0] = "Sunday";
week[1] = "Monday";
week[2] = "Tuesday";
foreach (string day in week)
{
//Some task
}
Run Code Online (Sandbox Code Playgroud)
和
List<string> week = new List<string>();
list.Add("Sunday");
list.Add("Monday");
list.Add("Tuesday");
foreach (string day in list)
{
//Some Task
}
Run Code Online (Sandbox Code Playgroud)
是否有任何性能问题?或任何其他更好的方法.谢谢.
我有一个具有多个值的int数组.我必须向该数组添加一个元素.我会这样解决:
int[] myIntArray=SomeMagicThere();
List<int> intList= myIntArray.ToList();
intList.Add(88);
myIntArray= intList.ToArray();
Run Code Online (Sandbox Code Playgroud)
(这很简单,我有理由不能改变myIntArray的类型)
你会以另一种方式解决它吗?做两个演员阵容感觉有点"脏"
列表基准:大小= 1000,运行= 50000,总时间= 19.5秒
var list = new List<string>(Size);
for (int i = 0; i < Size; i++) list.Add(i.ToString());
var b = new Benchmark();
b.Test("TestListIteration", () =>
{
c = 0;
for (int i = 0; i < Runs; i++)
{
for (int j = 0; j < Size; j++)
{
c += list[j].Length;
}
}
});
Run Code Online (Sandbox Code Playgroud)
列表到数组基准:大小= 1000,运行= 50000,总时间= 15.449
var list = new List<string>(Size);
for (int i = 0; i < Size; i++) list.Add(i.ToString());
var b = new …Run Code Online (Sandbox Code Playgroud) 我想在for语句中创建名为"Item"的类的新实例,但我不知道如何动态地给出名称.
for (i=0; i < Counter; i++)
{
MyClass "XXXX" = Class.method();
}
Run Code Online (Sandbox Code Playgroud)
如何创建2个字符串并给出名称?-例如-
for(i=0;i<2;i++){
string name + i = "Hello"
}
Run Code Online (Sandbox Code Playgroud)
EDITED
我有一些建议来达到我的解决方案,我可以创建一个字典.
var bomItems = new Dictionary<Item, Item>();
for (int i = 0; i < Count; i++)
{
Item bomItem = inn.newItem("Part BOM","add");
bomItems.Add(bomItem + i, bomItem);
}
Run Code Online (Sandbox Code Playgroud)
但我在"bomItem + i"中得到了一个合理的错误.我不能应用操作数'+'.明显.
有没有人对此有任何答案?
谢谢.
我正在写一些性能很重要的代码.在其中的一部分中,我必须将大量预先计算的数据与动态值进行比较.目前,我将预先计算的数据存储在.cs文件中的巨型数组中:
Data[] data = { /* my data set */ };
Run Code Online (Sandbox Code Playgroud)
数据集大约为90kb,或大约13k个元素.我想知道这样做是否有任何缺点,而不是从外部文件中加载它?我不完全确定C#是如何在内部工作的,所以我只是想知道我可能遇到的任何性能问题.
LIST FOR 00:00:00.0000980
LIST FOREACH 00:00:00.0000007
ARRAY FOR 00:00:00.0028450
ARRAY FOREACH 00:00:00.0051233
Run Code Online (Sandbox Code Playgroud)
我一直用数组来制作性能较重的东西,但列表似乎要快得多。
using System;
using System.Diagnostics;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
var cron = NCrontab.Advanced.CrontabSchedule.Parse("0 0 1 1 * 2016",
NCrontab.Advanced.Enumerations.CronStringFormat.WithYears);
var date = new System.DateTime(year: 2016, month: 1, day: 1,
hour: 0, minute: 0, second: 0);
int[] testArray = new int[1000000];
List<int> testList = new List<int>(1000000);
var stopWatch = new Stopwatch();
stopWatch.Start();
for (int i = 0; i < testList.Count;i++)
{
var …Run Code Online (Sandbox Code Playgroud) c# ×6
arrays ×4
.net ×3
performance ×3
list ×2
asp.net ×1
for-loop ×1
optimization ×1
string ×1