C#: comment obtenir la longueur de la chaîne dans la chaîne de caractères[]
J'ai une collection de string en C#. Mon Code ressemble à ceci:
string[] lines = System.IO.File.ReadAllLines(@"d:\SampleFile.txt");
Ce que je veux faire est de trouver la longueur maximum de la chaîne de collecte et de le stocker dans une variable. Actuellement, j'ai le code manuellement, comme?
int nMaxLengthOfString = 0;
for (int i = 0; i < lines.Length;i++ )
{
if (lines[i].Length>nMaxLengthOfString)
{
nMaxLengthOfString = lines[i].Length;
}
}
Le code ci-dessus fait le travail pour moi, mais je suis à la recherche pour certains fonction intégrée afin de maintenir l'efficacité, car il y aura des milliers de ligne dans myfile 🙁
Autant que je sache - il n'est pas intégré la fonction pour cela. Cependant, ils peuvent être d'autres façons d'écrire la même chose. Pour ex. à l'aide de LINQ ou à l'aide de la fonction Max.... N'est pas directement lié à C#, mais il y avait un thread sur le même sujet en Python - vous pouvez le lire si pour référence: stackoverflow.com/questions/1292630/...
OriginalL'auteur Jame | 2011-04-08
Vous devez vous connecter pour publier un commentaire.
Un moyen plus simple avec LINQ serait:
Noter que si vous êtes en utilisant .NET 4, vous n'avez pas besoin de lire toutes les lignes dans un tableau tout d'abord, si vous n'avez pas besoin d'eux plus tard:
(Si vous ne l'utilisez pas .NET 4, il est facile d'écrire l'équivalent de
File.ReadLines
.)Qui sera plus efficace en termes de mémoire, mais, fondamentalement, vous sera lire chaque ligne à partir du disque, et vous sera à itérer sur ces lignes pour trouver la longueur maximale. L'accès au disque est probablement le goulet d'étranglement de cours.
Max
... 🙂votre juste rapide!
OriginalL'auteur Jon Skeet
L'efficacité ne sera certainement pas pire dans votre cas, si ce n'est mieux.
Mais si vous êtes à la recherche d'être succincte, essayez lambdas avec LINQ:
Btw, point mineur: vous pouvez techniquement arrêter la lecture si la quantité de données est inférieure à la ligne la plus longue que vous avez trouvé. De sorte que vous pouvez techniquement enregistrer certaines étapes, mais ce n'est probablement pas la peine de le code.
Complètement hors de propos, mais juste parce que j'en ai envie, voici le (élégant!) Schéma de version:
OriginalL'auteur Mehrdad