Во-первых, вам нужно указать тип данных.
Поскольку вы этого не сделали, я создам его здесь в качестве заполнителя:
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");