usar una signo separadas punto puede preguntas pregunta por interrogación interrogacion hay exclamacion entre dentro coma antes admiración c#

signo - C#Cómo colocar una coma después de cada palabra pero la última en la lista



puede ir una coma antes de un signo de exclamacion (9)

  1. transforme su ListItemCollection en una matriz de cadenas usando linq
  2. utilizar String.Join

Me gusta:

public string ItemsToString(ListItemCollection items) { string[] stringArray = (from ListItem item in items where item.Selected select item.ToString()).ToArray(); return String.Join(", ", stringArray); }

Podrías usarlo por

sw.Write(ItemsToString(RolesCheckedListBox.CheckedItems));

O si prefieres una sola línea para el trabajo:

sw.Write(String.Join(", ", (from ListItem item in RolesCheckedListBox.CheckedItems select item.ToString()).ToArray()));

Soy totalmente nuevo en C # y aprendiendo sobre la marcha. Estoy atascado en el tema que espero que un programador experimentado pueda ayudar. He agregado un CheckedListBox a mi formulario y le agregué una colección de 6 artículos. Necesito que todos, excepto el último elemento seleccionado, tengan una coma al lado, así que mi pregunta es: ¿cómo puedo decir a C # NO que coloque una coma junto al último elemento seleccionado?

foreach (object itemChecked in RolesCheckedListBox.CheckedItems) { sw.Write(itemChecked.ToString() + ","); }

Gracias por cualquier ayuda recibida! Dan



En .Net 4 puede utilizar el string.Join() estático string.Join() e imprimir una cadena concatenada.

De lo contrario, la forma más fácil es anteponer una coma a todos los elementos, pero el primero:

bool shouldPrependComma = false; foreach (object itemChecked in RolesCheckedListBox.CheckedItems) { if (shouldPrependComma) sw.Write(","); sw.Write(itemChecked.ToString()); shouldPrependComma = true; }


En 4.0, simplemente puede usar string.Join() que llama al método ToString () para todos los valores no nulos:

var commaSeparated = string.Join(",", RolesCheckedListBox.CheckedItems);



Puedes usar la función Join lugar de hacer un bucle:

sw.Write(string.Join(",", RolesCheckedListBox.CheckedItems));


Se puede hacer usando el método string.Join() :

string commaSeparated = string.Join(",", RolesCheckedListBox.CheckedItems.Select(item => item.ToString());

Por ejemplo:

string[] names = new []{ "a", "b"}; string separatedNames = string.Join(",", names);

Resultará que los separatedNames serán "a,b"


Una forma de mejorar su ejemplo podría ser:

var index = 0; foreach (object itemChecked in RolesCheckedListBox.CheckedItems) { if ( index>0 ) sw.Write( "," ); sw.Write(itemChecked.ToString()); index++; }

No elegante, pero trabajando.


foreach (object itemChecked in RolesCheckedListBox.Items) { if (itemChecked != RolesCheckedListBox.Items[RolesCheckedListBox.Items.Count - 1]) sw.Write(itemChecked.ToString() + ","); }

Eso debería ayudarte. Además, solo usé "Artículos", usaste CheckedItems. Cambie todas las instancias de elementos a elementos comprobados si solo desea iterar a través de elementos comprobados.