ve bunun için pürüzlü diziden gereken unsurları koymak: rrays tek çizgide LINQ ile yapabileceğini, dizin 1'de öğesi
List<string> myListOfStrings = (new[] {listOfArrays[0][1], listOfArrays[1][1]), listOfArrays[2][1]}).ToList();
Veya yapmak gibi bir şey:
List<string> myListOfStrings = new List<string>();
for(int i = 0; i < listOfArrays.Length; i++) myListOfStrings.Add(listOfArrays[i][1]);
PS dasblinkenligh için Özel:
class Program
{
static string[][] GetRandomJaggedArray(int numberOfArrays, int numberOfElements)
{
string[][] temp = new string[numberOfArrays][];
for (int i = 0; i < numberOfArrays; i++)
{
temp[i] = new string[numberOfElements];
for (int i2 = 0; i2 < temp.Length; i2++)
temp[i][i2] = Guid.NewGuid().ToString();
}
return temp;
}
static TimeSpan getElementsAtIndexLINQ(string[][] listOfArrays, int index, int count)
{
Stopwatch s = new Stopwatch();
List<string> myListOfStrings;
s.Start();
for (int i = 0; i < count; i++)
myListOfStrings = listOfArrays.Select(a => a[index]).ToList();
s.Stop();
return s.Elapsed;
}
static TimeSpan getElementsAtIndexFOR(string[][] listOfArrays, int index, int count)
{
Stopwatch s = new Stopwatch();
List<string> myListOfStrings = new List<string>();
s.Start();
for (int i2 = 0; i2 < count; i2++)
for (int i = 0; i < listOfArrays.Length; i++) myListOfStrings.Add(listOfArrays[i][index]);
s.Stop();
return s.Elapsed;
}
static void Main(string[] args)
{
string[][] test1 = GetRandomJaggedArray(100, 1000);
string[][] test2 = GetRandomJaggedArray(100, 1000);
TimeSpan t1 = getElementsAtIndexLINQ(test1, 1, 10);
TimeSpan t2 = getElementsAtIndexFOR(test2, 1, 10);
Console.WriteLine("Linq method took {0} ticks to execute", t1.Ticks);
Console.WriteLine("For method took {0} ticks to execute", t2.Ticks);
Console.ReadKey();
}
}
Çıktı: Burada İÇİN vs LINQ hakkında
Daha: LINQ kullanmak istemeseydi For vs. Linq - Performance vs. Future
Dang beni dövdü. Ama evet bu, 'Yapma' için yapıldı. – ryanyuyu
Performans hakkında çok fazla şey umursamıyorsanız mükemmeldir, ancak LINQ döngü için daha yavaş ve daha basittir. – Fabjan
@Fabjan "Önemli ölçüde daha yavaş" iddiasını desteklemek için sayıları paylaşmayı düşünür müsünüz? – dasblinkenlight