【问题标题】:IEnumerable<string> function c# .netIEnumerable<string> 函数 c# .net
【发布时间】:2013-03-23 10:55:20
【问题描述】:

我在下面的采访中遇到过这个问题?

让我们考虑名为的字符串

string gowtham="test1,test2,test3" ;

我需要转换成 IEnumerable 字符串函数

我需要一个输出作为

new[] {"test1", "test2","test3" }

我所做的是我创建了一个 string() 函数,方法是用逗号分隔值,如下所示

string[] mysamples= gowtham.Split(',');

不知道以后怎么办

等待您的回复?

【问题讨论】:

  • 我没有看到你创建的函数。我不太明白你的问题。
  • 您已将 字符串 转换为 字符串数组。这些是数据,而不是函数。因此,您的mysamples 对象的类型为string[],它实现了所需的接口IEnumerable&lt;string&gt;
  • 我不认为有什么要补充的:数组实现了IEnumerable&lt;T&gt;,所以mysamples已经是IEnumerable&lt;string&gt;了。只需将其包装在一个返回值为IEnumerable&lt;string&gt; 的方法中即可。
  • @wRAR 这是函数 IEnumerable
  • @GowthamanSS 不,你没有。

标签: c# .net oop


【解决方案1】:

每个数组都已经是一个 IEnumerable,在你的情况下,如果你想显式转换为一个字符串的 IEnumerable,你可以使用

IEnumerable<string> mysamplesEnumerable = mysamples as IEnumerable<string>

如果你的面试官想要一个可以做到这一点的功能,你可以这样做

    IEnumerable<string> SplitEnumByComa(string input)
    {
          return input.Split(',');
    }

【讨论】:

  • 如果缺少 using system.LINQOP 可能会因缺少 IntelliSense 而感到困惑。我记得当我第一次学习 C# 时,这让我很困惑。
【解决方案2】:

如果我清楚你的问题,你可以使用这样的方法;

public static IEnumerable<string> YourMethod()
{
     string gowtham = "test1,test2,test3";
     string[] mysamples = gowtham.Split(',');
     List<string> senum = new List<string>();

     foreach ( string s in mysamples )
     {
         senum.Add(s);
     }

     return senum as IEnumerable<string>;
}

由于string[] 实现了IEnumerable&lt;T&gt; 接口,看来您只需要将其转换为IEnumerable&lt;T&gt;

编辑:既然 MagnusLukeH 警告过我,那么还有一个简单的方法是你想做的。

public static IEnumerable<string> YourMethod()
{
     string gowtham = "test1,test2,test3";
     return gowtham .Split(',');
}

【讨论】:

  • 这似乎没有必要,因为 "test1,test2,test3".Split(',').AsEnumerable() 会这样做。
  • @Magnus:你甚至不需要AsEnumerable 调用:如果方法被键入为IEnumerable&lt;string&gt;,那么只需return "test1,test2,test3".Split(','); 就可以了。
  • @Magnus 你是完全正确的。我之所以写这个,是因为在我看来它更简单、更易读、更容易理解……
  • @LukeH 和马格努斯。更新了伙计们!谢谢。
  • @LukeH 是的,如果在返回 IEnumerable&lt;string&gt; 的方法中用作返回语句,则不需要额外的 AsEnumerable()(仅进行强制转换)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-07
  • 2010-10-16
  • 2011-06-06
  • 1970-01-01
  • 2018-04-15
  • 1970-01-01
  • 2022-01-17
相关资源
最近更新 更多