2011-09-27 17 views
32

Eventuali duplicati:
.Net equivalent of the old vb left(string, length) function?funzione Left in C#

qual è l'alternativa per la funzione di sinistra in C# ho questo in

Left(fac.GetCachedValue("Auto Print Clinical Warnings").ToLower + " ", 1) == "y"); 
+1

Questa non è una domanda completa- cos'è questa funzione sinistra? Perché stai cercando un'alternativa ad esso? Qual è il tuo input/output previsto? –

+0

Lasciato in Vb.net .. devo convertire questo in C#. Ora ho la risposta tnaks –

+1

Questo non è un duplicato ... l'altra domanda richiede una funzione vb 6 in un programma vb.net. Questa domanda richiede una risposta in C# – Ggalla1779

risposta

88

Sembra che tu stai chiedendo di una funzione

string Left(string s, int left) 

che restituirà i caratteri di sinistra left della stringa s. In tal caso puoi semplicemente usare String.Substring. È possibile scrivere questo come un metodo di estensione:

public static class StringExtensions 
{ 
    public static string Left(this string value, int maxLength) 
    { 
     if (string.IsNullOrEmpty(value)) return value; 
     maxLength = Math.Abs(maxLength); 

     return (value.Length <= maxLength 
       ? value 
       : value.Substring(0, maxLength) 
       ); 
    } 
} 

e usarlo in questo modo:

string left = s.Left(number); 

Per esempio specifico:

string s = fac.GetCachedValue("Auto Print Clinical Warnings").ToLower() + " "; 
string left = s.Substring(0, 1); 
+0

@Roland Illig: Sì, ma come ho detto, "Lascerò a te la gestione degli errori". – jason

+2

Modificato per passare attraverso le stringhe nulle, vuote e più corte delle stringhe desiderate inalterate. –

8

uso Funzione substring:

yourString.Substring(0, length); 
+4

Attenzione: se la lunghezza della stringa è inferiore al numero di caratteri che stai prendendo, otterrai una ArgumentOutOfRangeException. –

44

È il metodo Sottostringa di String, con il primo argomento impostato su 0.

myString.Substring(0,1); 

[Quanto segue è stato aggiunto da Almo; vedi il commento di Justin J Stark. — Peter O.]

Attenzione: Se la lunghezza della stringa è inferiore al numero di caratteri che stai prendendo, si otterrà un ArgumentOutOfRangeException.

+5

Attenzione: se la lunghezza della stringa è inferiore al numero di caratteri che stai prendendo, otterrai una ArgumentOutOfRangeException. –

0
var value = fac.GetCachedValue("Auto Print Clinical Warnings") 
// 0 = Start at the first character 
// 1 = The length of the string to grab 
if (value.ToLower().SubString(0, 1) == "y") 
{ 
    // Do your stuff. 
} 
7

Basta scrivere ciò che si voleva davvero sapere:

fac.GetCachedValue("Auto Print Clinical Warnings").ToLower().StartsWith("y") 

E 'molto più semplice di qualsiasi altra cosa con stringa.