Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Redimensioning an array in c#
Message
De
04/11/2015 16:16:04
 
Information générale
Forum:
ASP.NET
Catégorie:
Autre
Versions des environnements
Environment:
VB 9.0
OS:
Windows 10
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01627021
Message ID:
01627048
Vues:
59
>>Why not use a List instead?
>
>Because I need the fields of the records of the text file as an array. Can I Linq to a List Of String[]? Haven't tried it.
>
>Anyway, thanks for caring.
>
>
>>
>>
>>>
>>>        public static string[,] lines = new string[1,13];
>>>        static T[,] ResizeArray<T>(T[,] original, int rows, int cols)
>>>        {
>>>            var newArray = new T[rows, cols];
>>>            int minRows = Math.Min(rows, original.GetLength(0));
>>>            int minCols = Math.Min(cols, original.GetLength(1));
>>>            for (int i = 0; i < minRows; i++)
>>>                for (int j = 0; j < minCols; j++)
>>>                    newArray[i, j] = original[i, j];
>>>            return newArray;
>>>        }
>>>        public static void loadUploadedInvoices(string filename)
>>>        {
>>>            var work = File.ReadAllLines(filename).Select(a => a.Split("\t"[0])).ToArray();
>>>            int rows = work.Length-1;
>>>            string[,] work2 = new string[rows, 13];
>>>            for (int r=0; r<rows; r++)
>>>                for (int c= 0; c<13; c++)
>>>                {
>>>                    work2[r, c] = work[r][ c];
>>>                }
>>>            lines = AigFundedInvoices.ResizeArray<String>(work2, rows, 13);
>>>        }
>>>
>>>
>>>
>>>This kinda works, but I'm copying everything twice. Is there a way to do this by copying only once?

Linq is designed to work with one dimensional IEnumerable structures. It probably won't work for you unless you can work with jagged arrays/lists. You may find some helpful suggestions at http://stackoverflow.com/questions/9774901/how-to-convert-list-of-arrays-into-a-multidimensional-array.

As far as copying everything twice, is there a reason that you need to call the ResizeArray function? Why not just set lines = work2?
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform