嘿伙计们,我想知道是否有一种将数组复制到列表的单行方式,而不是以下方法:
String array[] = new String[]{"1", "2", "3", "4" } ;
List list = new ArrayList();
for (int i=0; i< array.length; i++){
list.add(array[i] );
}
Run Code Online (Sandbox Code Playgroud)
编辑:感谢您提供丰富的答案,非常有帮助:)
本质上,我有一个主窗口,其上有一个用户控件,包含一个绑定到主窗口视图模型的属性.这个想法是当属性在用户表单中发生变化时,通过绑定主窗口视图模型中的属性也会发生变化.问题是,当用户控件没有ViewModel时,这是有效的,当我向用户控件添加一个简单的ViewModel时,绑定不再起作用.因为我需要为我的控件设置ViewModel,所以我需要弄清楚为什么添加ViewModel会破坏绑定以及如何修复它.欢迎任何建议.
public partial class Control1 : UserControl, INotifyPropertyChanged
{
public Control1()
{
InitializeComponent();
Loaded += Control1_Loaded;
}
void Control1_Loaded(object sender, RoutedEventArgs e)
{
DataContext = new Control1ViewModel();
}
public static DependencyProperty SavedStringProperty = DependencyProperty.Register(
"SavedString", typeof(string), typeof(Control1));
public string SavedString
{
get
{
return (string)GetValue(SavedStringProperty);
}
set
{
SetValue(SavedStringProperty, value);
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void FirePropChanged(string property)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
SavedString = "Hi";
} …Run Code Online (Sandbox Code Playgroud) 我试图以最有效的方式从另一组中拿走一组.因此,如果我有以下集合A和B,那么A_minus_B应该给出{1,2,6}.这是我所拥有的,虽然我相信它不是最有效的方式.
HashSet<int> A = new HashSet<int>{ 1, 2, 3, 4, 5, 6 };
HashSet<int> B = new HashSet<int> { 3, 4, 5 };
HashSet<int> A_minus_B = new HashSet<int>(A);
foreach(int n in A){
if(B.Contains(n)) A_minus_B.Remove(n);
}
Run Code Online (Sandbox Code Playgroud) 我想在Java中测试一些关于泛型的东西,所以我用泛型编写了一个方法,它接受一个列表并删除所有其他元素.我写了这个方法,但它给出了UnsupportedOperationException错误.这里有什么问题?
Integer[] strArray = new Integer[] {1, 2, 3, 4, 5};
List<Integer> numbers = Arrays.asList(strArray);
removeOdd(numbers);
for (Object o : numbers){
System.out.println( o );
}
}
public static <T> void removeOdd ( List<T> list){
Iterator<T> itr = list.iterator();
int i = 0;
while(itr.hasNext())
{
itr.next();
i++;
if(i % 2 ==1){
itr.remove();
}
}
Run Code Online (Sandbox Code Playgroud)