1

我有一个绑定源,已由

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 中执行此操作

谢谢,

4

2 回答 2

1

这应该有助于:

http://msdn.microsoft.com/en-us/library/bb399401.aspx

干杯

于 2010-07-28T23:34:59.250 回答
0

首先,您需要指定您的数据类型。

既然你没有,我将在这里创建一个作为占位符:

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");
于 2017-05-18T19:49:43.277 回答