File:CopyTo and ForEach method and foreach iteration of Dictionary.svg
Материал из Викисклада, хранилища свободных медиафайлов
Перейти к навигации
Перейти к поиску
![File:CopyTo and ForEach method and foreach iteration of Dictionary.svg](https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/CopyTo_and_ForEach_method_and_foreach_iteration_of_Dictionary.svg/500px-CopyTo_and_ForEach_method_and_foreach_iteration_of_Dictionary.svg.png?20100407024731)
Размер этого 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(青子守歌) |
Другие версии |
![]() |
Лицензирование
[править]Я, владелец авторских прав на это произведение, добровольно публикую его на условиях следующих лицензий:
![w:ru:Creative Commons](https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/CC_some_rights_reserved.svg/90px-CC_some_rights_reserved.svg.png)
![атрибуция](https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Cc-by_new_white.svg/24px-Cc-by_new_white.svg.png)
![распространение на тех же условиях](https://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Cc-sa_white.svg/24px-Cc-sa_white.svg.png)
Этот файл доступен на условиях лицензий Creative Commons Attribution-Share Alike 3.0 Unported, 2.5 Generic, 2.0 Generic и 1.0 Generic.
- Вы можете свободно:
- делиться произведением – копировать, распространять и передавать данное произведение
- создавать производные – переделывать данное произведение
- При соблюдении следующих условий:
- атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
- распространение на тех же условиях – Если вы изменяете, преобразуете или создаёте иное произведение на основе данного, то обязаны использовать лицензию исходного произведения или лицензию, совместимую с исходной.
![]() ![]() ![]() |
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; }
}
}
}
История файла
Нажмите на дату/время, чтобы увидеть версию файла от того времени.
Дата/время | Миниатюра | Размеры | Участник | Примечание | |
---|---|---|---|---|---|
текущий | 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 |
---|