Я считаю следующий ответ более простым, чем другие:
string numWithCommas = to_string(value);
int insertPosition = numWithCommas.length() - 3;
while (insertPosition > 0) {
numWithCommas.insert(insertPosition, ",");
insertPosition-=3;
}
Это быстро и корректно вставляет запятые в вашу строку цифр.
Выражение
lstAuthors.Items.Contains(itm)
всегда будет возвращать false
для вновь созданного itm
объекта. Но это не имеет значения, потому что весь ваш подход неверен.
В приложении WPF вы обычно реализуете шаблон MVVM и привязывает свойство ListBox ItemsSource
к свойству коллекции строк в классе модели представления.
Однако, в качестве первого шага вы могли бы просто объявить член ObservableCollection<string>
в вашем классе MainWindow и в его конструкторе напрямую назначить его свойству ItemsSource:
private readonly ObservableCollection<string> authors
= new ObservableCollection<string>();
public MainWindow()
{
InitializeComponent();
lstAuthors.ItemsSource = authors;
}
Теперь вы будете работать с этой коллекцией только:
var author = txbAuthor.Text.TrimEnd(' ', ';');
if (!authors.Contains(author))
{
authors.Add(author);
}