我有一个包含字符串
的列表List<string> valueList = new List<string>();
valueList.Add("test1");
valueList.Add("test2");
valueList.Add("test3");
valueList.Add("test4");
valueList.Add("test5");
valueList.Add("test6");
valueList.Add("test7");
valueList.Add("test8");
我还有另一个包含对象的列表
List<test> fieldList = new List<test>();
fieldList.Add(new test() { FieldName = "field1", FieldType = 1, FieldIndex = 0 });
fieldList.Add(new test() { FieldName = "field3", FieldType = 1, FieldIndex = 2 });
fieldList.Add(new test() { FieldName = "field5", FieldType = 1, FieldIndex = 4 });
我想使用fieldList中包含的对象的FieldIndex属性,所以我使用以下内容构建一个只包含fieldIndex值的列表
var mylist = fieldList.Select(m => m.FieldIndex).ToList();
但现在我想使用fieldindex
列表来检索valuelist
中的值,因此基于上面的myList
将包含test1,test3和test5,理想情况下我我想在每个string values = "test1,test3,test5"
我确信必须有一种使用linq的方法,但无法弄清楚如何!
有什么想法吗?
感谢。
答案 0 :(得分:2)
var result = String.Join(",", valueList
.Where(vl => fieldList.Select(fl => fl.FieldIndex)
.Contains(valueList.IndexOf(vl))))
答案 1 :(得分:0)
解决方案之一
var mylist = fieldList.Select(m => m.FieldIndex).ToList();
string str = string.Empty;
mylist.ForEach((i) => str += valueList[i] + ",");