Делая x => new { Value = x }
, вы проецируете новый анонимный тип и больше не List<string>
. В этом же вопросе ваша ссылка попытается использовать принятый ответ и проецирование на известный тип, таким образом, вы можете получить List<StringValue>
List<String> list_string= new List<String>();
DataGridView.DataSource = list_string.Select(x => new StringValue(x)).ToList();
С этим вы можете:
List<StringValue> myList = datagridview1.datasource as List<StringValue>;
И чем, наконец, получить ваш List<string>
List<string> stringList = null;
if(myList != null)
{
stringList = myList.Select(s=>s.Value).ToList();
}