我有一个绑定源,已由
tableadapter.fill(DS, param1);
可以说这个绑定源有:
char num
A 1
B 2
C 3
如何使用 linq 获取给定 char 'A' 的 num 值?
我可以使用 foreach(this.p_EM_Select_Event_TypeBindingSource 中的 DataRowView 数据)识字,但我想知道如何在 linq 中执行此操作
谢谢,
我有一个绑定源,已由
tableadapter.fill(DS, param1);
可以说这个绑定源有:
char num
A 1
B 2
C 3
如何使用 linq 获取给定 char 'A' 的 num 值?
我可以使用 foreach(this.p_EM_Select_Event_TypeBindingSource 中的 DataRowView 数据)识字,但我想知道如何在 linq 中执行此操作
谢谢,
首先,您需要指定您的数据类型。
既然你没有,我将在这里创建一个作为占位符:
public class Data1
{
public Data1()
{
Character = String.Empty;
Number = -1;
Other = null;
}
public String Character { get; set; }
public int Number { get; set; }
public object Other { get; set; }
}
现在您有了数据类型,我们可以假设您的 BindingSource 填充了这种类型的数据:
在您的代码中的某处,您必须填写您的 BindingList:
p_EM_Select_Event_TypeBindingSource.DataSource = new List<Data1>();
像下面这样的方法为这些类型的任务制作了很好的包装器:
public int GetIndex(String value)
{
var result = -1;
if (!String.IsNullOrEmpty(value))
{
var list = (IList<Data1>)p_EM_Select_Event_TypeBindingSource.List;
if (list.Any(x => x.Character == value))
{
result = list.IndexOf(list.First(x => x.Character == value));
}
}
return result;
}
public int GetNumber(String value)
{
var result = -1;
if (!String.IsNullOrEmpty(value))
{
var item = list.IndexOf(list.FirstOrDefault(x => x.Character == value));
if (item != null)
{
result = item.Number;
}
}
return result;
}
要将 BindingSource 设置为具有给定字符“A”的数据项,您可以调用您的方法:
p_EM_Select_Event_TypeBindingSource.Position = GetIndex("A");
或者,要使用给定的字符获取数据项的数字,您可以调用类似的方法:
var number = GetNumber("A");