item() function very slow.

item() function very slow.

Hi,.
I want to put a value in the array.
The item()function takes too long in a loop.

IArchiveFilterVariables zenonArchiveVariables = zenonArchiveFilter.Query();

//Get the first available filtered variable
IArchiveFilterVariable zenonArchiveFilterVariable = zenonArchiveFilter.ArchiveFilterVariables().Item(1);
IArchiveFilterVariable zenonArchiveFilterVariable1 = zenonArchiveFilter.ArchiveFilterVariables().Item(0);
IArchiveFilterVariable zenonArchiveFilterVariable2 = zenonArchiveFilter.ArchiveFilterVariables().Item(2);
string[,] saNames = new string[300000, 6];

IArchiveValues t1 = zenonArchiveFilterVariable.ArchiveValues();
IArchiveValues t2 = zenonArchiveFilterVariable1.ArchiveValues();
IArchiveValues t3 = zenonArchiveFilterVariable2.ArchiveValues();
DateTime startTime1 = DateTime.Now;
int EndCount=zenonArchiveFilterVariable.ArchiveValues().Count;
for (int i = 0; i < 30182; ++i)
{

//System.Diagnostics.Debug.Print("value : " + zenonArchiveFilterVariable.ArchiveValues().Item(i).Value);
//System.Diagnostics.Debug.Print("value : " + zenonArchiveFilterVariable.ArchiveValues().Item(i).Value);
//dateT = TimeConversion.ZenOnToSystem((uint)zenonArchiveFilterVariable.ArchiveValues().Item(i).Time).ToString("yyyy-MM-dd HH:mm:ss");
//System.Diagnostics.Debug.Print("state: &H : " + zenonArchiveFilterVariable.ArchiveValues().Item(i).Status.ToString("X"));
//System.Diagnostics.Debug.Print("time : " + dateT);
//System.Diagnostics.Debug.Print("MS : " + zenonArchiveFilterVariable.ArchiveValues().Item(i).TimeMilliSec);


saNames[i, 0] = TimeConversion.ZenOnToSystem((uint)t1.Item(i).Time).ToString("yyyy-MM-dd HH:mm:ss");
saNames[i, 1] = t1.Item(i).Value.ToString();

saNames[i, 2] = TimeConversion.ZenOnToSystem((uint)t2.Item(i).Time).ToString("yyyy-MM-dd HH:mm:ss");
saNames[i, 3] = t2.Item(i).Value.ToString();

saNames[i, 4] = TimeConversion.ZenOnToSystem((uint)t3.Item(i).Time).ToString("yyyy-MM-dd HH:mm:ss");
saNames[i, 5] = t3.Item(i).Value.ToString();
}

DateTime endTime1 = DateTime.Now;
System.Diagnostics.Debug.Print("for result time : " + (endTime1 - startTime1).ToString());

out put : for result time : 34 second

This is a migrated post! Originally posted on 17.05.2016 by user backjahyun. Please be aware that information can be outdated.