Если я не ошибаюсь, listval - это List<string>
или любой другой список примитивных типов. Причина, по которой он ведет себя в вашем случае, заключается в том, что примитивные типы являются struct, а не классами.
вместо использования списка примитивных типов попробуйте использовать конкретный класс
Допустим, вы используете список имен, таких как List ..
Создайте класс, имеющий свойство name
class person
{
public string Name{get;set;}
}
используйте список, и вы можете связать имя свойства