【问题标题】:How to filter String array with integer array with LINQ by index? [closed]如何通过索引使用 LINQ 过滤带有整数数组的字符串数组? [关闭]
【发布时间】:2020-11-28 16:09:10
【问题描述】:
String[] columnList = new String[]{"column1","column2","column3","column4","column5","column6","column7","column8","column9","column10","column11","column12" };

Int[] fList = new Int[] { 1,3,5,10,12 };

我想要这样的输出:

column1,column3,column5,column10,column12

【问题讨论】:

  • 这个问题可能会对您有所帮助。它有点不同,但除了一些字符串格式之外应该是相似的:stackoverflow.com/questions/728319/…
  • 这听起来像是家庭作业。你至少表现出一次尝试。

标签: c# asp.net linq


【解决方案1】:

您可以将String.JoinSelect 结合使用

string result = string.Join(",", fList.Select(n => columnList[n-1]));

显然您需要确保索引存在。如果您不知道可以使用ElementAtOrDefault(n-1) 而不是[n-1]

【讨论】:

  • 此方法有效。多谢。 2小时的挣扎。
【解决方案2】:

我希望这不是家庭作业!这样就可以了:

var joined = from column in columnList.Select((x, i) => new {Index = i + 1, Column = x} )
             join index in fList on column.Index equals index
             select column.Column;
Console.WriteLine(string.Join(",", joined));

// output
// column1,column3,column5,column10,column12

【讨论】:

    猜你喜欢
    • 2012-08-06
    • 1970-01-01
    • 2022-07-04
    • 2015-03-24
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    相关资源
    最近更新 更多