我有列表,我想将它转换为 autoCompleteStringCollection.. 我不想使用 foreach。
_textbox.AutoCompleteMode = AutoCompleteMode.Append;
_textbox.AutoCompleteSource = AutoCompleteSource.CustomSource;
_textbox.AutoCompleteCustomSource = user.GetNameUsers() as AutoCompleteStringCollection;
注意 user.GetNameUsers() 是列表。
代码不起作用,它变为空。
谢谢
最佳答案
_textbox.AutoCompleteMode = AutoCompleteMode.Append;
_textbox.AutoCompleteSource = AutoCompleteSource.CustomSource;
var autoComplete = new AutoCompleteStringCollection();
autoComplete.AddRange(user.GetNameUsers().ToArray());
_textbox.AutoCompleteCustomSource = autoComplete;
如果你经常需要这个,你可以写一个扩展方法:
public static class EnumerableExtensionsEx
{
public static AutoCompleteStringCollection ToAutoCompleteStringCollection(
this IEnumerable<string> enumerable)
{
if(enumerable == null) throw new ArgumentNullException("enumerable");
var autoComplete = new AutoCompleteStringCollection();
foreach(var item in enumerable) autoComplete.Add(item);
return autoComplete;
}
}
用法:
_textbox.AutoCompleteCustomSource = user.GetUsers().ToAutoCompleteStringCollection();
关于c# - List<string> 如何成为 AutoCompleteStringCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4678194/