Файл:CopyTo and ForEach method and foreach iteration of Dictionary.svg
Материал из Википедии — свободной энциклопедии
Перейти к навигации
Перейти к поиску
Размер этого PNG-превью для исходного SVG-файла: 500 × 374 пкс. Другие разрешения: 320 × 239 пкс | 640 × 479 пкс | 1024 × 766 пкс | 1280 × 957 пкс | 2560 × 1915 пкс.
Исходный файл (SVG-файл, номинально 500 × 374 пкс, размер файла: 116 КБ)
Этот файл находится на Викискладе. Сведения о нём показаны ниже.
Викисклад — централизованное хранилище для свободных файлов, используемых в проектах Викимедиа.
Сообщить об ошибке с файлом |
Краткое описание
ОписаниеCopyTo and ForEach method and foreach iteration of Dictionary.svg |
English: Processing time of ForEach method (and CopyTo method) and foreach iteration of Dictionary Class in C#, by DELL Vostro 200.
This shows that Foreach takes longer than foreach.
日本語: C#のDictionaryクラスで、ForEachメソッド(とCopyToメソッド)を使った場合と、foreachで繰り返しを行なった場合の処理時間(DELL Vostro 200を使用)。
Foreachのほうがforeachより時間がかかっていることがわかる。 |
Дата | |
Источник | Собственная работа |
Автор | aokomoriuta(青子守歌) |
Другие версии |
Лицензирование
Я, владелец авторских прав на это произведение, добровольно публикую его на условиях следующих лицензий:
Этот файл доступен на условиях лицензий Creative Commons Attribution-Share Alike 3.0 Unported, 2.5 Generic, 2.0 Generic и 1.0 Generic.
- Вы можете свободно:
- делиться произведением – копировать, распространять и передавать данное произведение
- создавать производные – переделывать данное произведение
- При соблюдении следующих условий:
- атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
- распространение на тех же условиях – Если вы изменяете, преобразуете или создаёте иное произведение на основе данного, то обязаны использовать [[ccorg:share-your-work/licensing-considerations/compatible-licenses
This file is licensed under the Creative Commons Attribution-Noncommercial 3.0 Unported license. | |
|
Разрешается копировать, распространять и/или изменять этот документ в соответствии с условиями GNU Free Documentation License версии 1.2 или более поздней, опубликованной Фондом свободного программного обеспечения, без неизменяемых разделов, без текстов, помещаемых на первой и последней обложке. Копия лицензии включена в раздел, озаглавленный GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
Вы можете выбрать любую из этих лицензий.
C# source code
using System.Collections.Generic;
using System;
namespace LWisteria.Foreach
{
/// <summary>
/// Foreachの性能比較クラス
/// </summary>
static class Foreach
{
/// <summary>
/// エントリポイント
/// </summary>
/// <returns>終了コード</returns>
static int Main()
{
// ストップウォッチ
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
// データ数
const int N = 10000000;
// 2倍ずつ計算
for(int n = 1; n < N; n *= 2)
{
// 計算するデータの生成
Dictionary<int, Sample> testData = new Dictionary<int, Sample>(n);
for(int i = 0; i < n; i++)
{
// 0, 1, 2...に10.5, 11.5, 12.5 ...を格納
testData.Add(i, new Sample() { Value = n + i });
}
// 普通にforeachで
double sum1 = 0;
stopwatch.Reset();
stopwatch.Start();
foreach(Sample sample in testData.Values)
{
sum1 += sample.Value;
}
long time1 = stopwatch.ElapsedTicks;
// 配列にコピーしてから、Array.Foreachメソッド
double sum2 = 0;
stopwatch.Reset();
stopwatch.Start();
Sample[] samples = new Sample[testData.Count];
testData.Values.CopyTo(samples, 0);
Array.ForEach<Sample>(samples, (sample) =>
{
sum2 += sample.Value;
});
long time2 = stopwatch.ElapsedTicks;
// 結果の表示
Console.WriteLine("{0}, {1}, {2}", n, time1, time2);
}
// 終了コードを返す
return Environment.ExitCode;
}
/// <summary>
/// サンプルクラス(参照型)
/// </summary>
sealed class Sample
{
/// <summary>
/// 値
/// </summary>
public double Value { set; get; }
}
}
}
Элементы, изображённые на этом файле
изображённый объект
image/svg+xml
eb17536929bdc55847386aad8e939be9384d819d
118 704 байт
374 пиксель
500 пиксель
История файла
Нажмите на дату/время, чтобы посмотреть файл, который был загружен в тот момент.
Дата/время | Миниатюра | Размеры | Участник | Примечание | |
---|---|---|---|---|---|
текущий | 02:47, 7 апреля 2010 | 500 × 374 (116 КБ) | 青子守歌 | {{User:青子守歌/own work| |en = Processing time of ForEach method (and CopyTo method) and foreach iteration of Dictionary Class in C#, by [http://supportapj.dell.com/support/topics/topic.aspx/jp/shared/support/jp/product_suppo |
Использование файла
Нет страниц, использующих этот файл.
Метаданные
Файл содержит дополнительные данные, обычно добавляемые цифровыми камерами или сканерами. Если файл после создания редактировался, то некоторые параметры могут не соответствовать текущему изображению.
Краткое название | foeach and ForEach method |
---|