Je me demandais simplement comment je pouvais limiter la longueur d'une chaîne en C#.
string foo = "1234567890";
Disons que nous avons cela. Comment puis-je limiter foo à dire 5 caractères ?
Je me demandais simplement comment je pouvais limiter la longueur d'une chaîne en C#.
string foo = "1234567890";
Disons que nous avons cela. Comment puis-je limiter foo à dire 5 caractères ?
Vous pouvez étendre la classe "string" pour vous permettre de renvoyer une chaîne limitée.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// since specified strings are treated on the fly as string objects...
string limit5 = "The quick brown fox jumped over the lazy dog.".LimitLength(5);
string limit10 = "The quick brown fox jumped over the lazy dog.".LimitLength(10);
// this line should return us the entire contents of the test string
string limit100 = "The quick brown fox jumped over the lazy dog.".LimitLength(100);
Console.WriteLine("limit5 - {0}", limit5);
Console.WriteLine("limit10 - {0}", limit10);
Console.WriteLine("limit100 - {0}", limit100);
Console.ReadLine();
}
}
public static class StringExtensions
{
/// <summary>
/// Method that limits the length of text to a defined length.
/// </summary>
/// <param name="source">The source text.</param>
/// <param name="maxLength">The maximum limit of the string to return.</param>
public static string LimitLength(this string source, int maxLength)
{
if (source.Length <= maxLength)
{
return source;
}
return source.Substring(0, maxLength);
}
}
}
Résultat:
limit5 - Le q limit10 - Le rapide limit100 - Le brun rapide le renard a sauté par-dessus le chien paresseux.
Vous ne pouvez pas. Gardez à l'esprit que foo
est une variable de type string
.
Vous pouvez créer votre propre type, disons BoundedString
, et avoir :
BoundedString foo = new BoundedString(5);
foo.Text = "hello"; // Fine
foo.Text = "naughty"; // Throw an exception or perhaps truncate the string
... mais vous ne pouvez pas empêcher une variable de chaîne d'être définie sur une référence de chaîne (ou null).
Bien sûr, si vous avez une propriété de chaîne , vous pouvez le faire :
private string foo;
public string Foo
{
get { return foo; }
set
{
if (value.Length > 5)
{
throw new ArgumentException("value");
}
foo = value;
}
}
Cela vous aide-t-il quel que soit votre contexte plus large ?
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.