我有这样的集合:
List<string> names = new List<string>
{
"One",
"Two"
"One",
"Three",
"One",
"One"
};
Run Code Online (Sandbox Code Playgroud)
我想删除那些额外的"Ones",只留下第一个"One".下面的代码不能以某种方式工作.
foreach (var item in names)
{
if (names.Contains(item) && names.Count(x => x == item) > 1)
{
names.Remove(item);
}
}
Run Code Online (Sandbox Code Playgroud)
什么是其他更清洁的选择?:)
先感谢您.
我知道,有很多这样的问题,但我无法使其正常工作...
我有一个带字符串的布尔值ObservableCollection。ListView已绑定到该列表,并具有一个CheckBox和一个TextBox。现在我需要通过代码检查一个项目...当我更改bool值时,GUI中什么也没有出现。
当我检查ListView项目时,集合会更新。
可观察的集合
public ObservableCollection<MvItems> Mailverteiler { get { return _Mailverteiler; } }
public ObservableCollection<MvItems> _Mailverteiler = new ObservableCollection<MvItems>();
public class MvItems
{
public string MvName { get; set; }
public bool IsChecked { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如何“检查”项目:
foreach (MvItems mvitem in Mailverteiler)
{
mvitem.IsChecked = false;
if (mvitem.MvName.ToString().Contains(tblFirma.Text))
{
mvitem.IsChecked = true;
}
}
Run Code Online (Sandbox Code Playgroud)
XAML:
<ListView x:Name="lvMailverteiler" Margin="20,10,20,0" FontSize="9" SelectionMode="Extended" Height="260" ItemsSource="{Binding Mailverteiler}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Width="280" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition Width="230" />
</Grid.ColumnDefinitions>
<CheckBox …Run Code Online (Sandbox Code Playgroud) 我找到了一段使用ObservableCollection的代码,但是他们可以使用list或任何其他与集合相关的类.任何人都可以告诉我使用ObservableCollection的好处是什么.
ObservableCollection<Employee> empData = new ObservableCollection<Employee>
{
new Employee{Name="Diptimaya Patra", Contact="0000",
EmailID="diptimaya.patra@some.com", Country="India"},
new Employee{Name="Dhananjay Kumar", Contact="00020",
EmailID="dhananjay.kumar@some.com", Country="India"},
new Employee{Name="David Paul", Contact="1230",
EmailID="david.paul@some.com", Country="India"},
new Employee{Name="Christina Joy", Contact="1980",
EmailID="christina.joy@some.com", Country="UK"},
new Employee{Name="Hiro Nakamura", Contact="0000",
EmailID="hiro.nakamura@some.com", Country="Japan"},
new Employee{Name="Angela Patrelli", Contact="0000",
EmailID="angela.patrelli@some.com", Country="Japan"},
new Employee{Name="Zoran White", Contact="0000",
EmailID="diptimaya.patra@some.com", Country="Scotland"},
};
Run Code Online (Sandbox Code Playgroud)
请详细讨论.谢谢
当我从一个集合中删除项目时,.net方面发生了什么?对删除项的引用是否仍然有效?
class myObject
{
int i = 1;
}
...
public ObservableCollection<myObject> myObjects = new ObservableCollection<myObject>();
...
myObjects.Add(new myObject());
myObjects.Add(new myObject());
myObject removedItem = myObjects[1];
myObjects.RemoveAt(1);
// removedItem still valid ?
Run Code Online (Sandbox Code Playgroud) 问题是为什么可观察集合出现空引用?当我尝试将项目添加到obscollection时发生错误.
注意:我必须知道如何将datagrid中的所有项目都提供给observable collection.
错误:
你调用的对象是空的.
line: - "good.Add(temp_table);" 按一下按钮
Web.DomainService1 oservice = new Web.DomainService1();
public static ObservableCollection<Web.EMP_TABLE> good = new ObservableCollection<Web.EMP_TABLE>();
public Home()
{
InitializeComponent();
this.Title = ApplicationStrings.HomePageTitle;
EntityQuery<Web.EMP_TABLE> q = oservice.GetEMP_TABLE_OBVQuery();
LoadOperation<Web.EMP_TABLE> l = oservice.Load(q);
dataGrid1.ItemsSource = l.Entities;
}
private void button1_Click(object sender, System.Windows.RoutedEventArgs e)
{
ObservableCollection<Web.EMP_TABLE> good =
dataGrid1.ItemsSource as ObservableCollection<Web.EMP_TABLE>;
Web.EMP_TABLE temp_table = new Web.EMP_TABLE();
temp_table.SALARY = "new_sal";
temp_table.EMP_NAME = "new_name";
temp_table.EMP_NO = "new_num";
good.Add(temp_table);
}
Run Code Online (Sandbox Code Playgroud)
<sdk:DataGrid AutoGenerateColumns="True" Height="116" Name="dataGrid2" Width="539" />
Run Code Online (Sandbox Code Playgroud)
public ObservableCollection<EMP_TABLE> …Run Code Online (Sandbox Code Playgroud)