1

我有一个包含字符串的列表

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,理想情况下,我希望在每个 ie 之间得到一个逗号string values = "test1,test3,test5"

我确信必须有一种使用 linq 的方法,但不知道怎么做!

有任何想法吗?

谢谢。

4

2 回答 2

2
var result = String.Join(",", valueList
    .Where(vl => fieldList.Select(fl => fl.FieldIndex)
                          .Contains(valueList.IndexOf(vl))))
于 2013-11-15T01:44:39.537 回答
0

解决方案之一

 var mylist = fieldList.Select(m => m.FieldIndex).ToList();
 string str = string.Empty;
 mylist.ForEach((i) => str += valueList[i] + ",");
于 2013-11-15T01:49:22.623 回答