Convert a list of IEnumerable<foo> to List<string&g

本文关键字:lt to List string gt foo IEnumerable list Convert of | 更新日期: 2023-09-27 18:17:24

我正在尝试将我的Token列表转换为字符串列表。

这是我的类Token:

internal class Token
{
    private TokenType Type { get; set; }
    private string Value { get; set; }
    private int Index { get; set; }
    public enum TokenType
    {
        Verb,
        Word,
        Adjective
    }
    public IEnumerable<Token> Tokenizer(string source)
    {
        var token = source.Split().ToList();
        return token;
    }
}

我想做的是将源字符串分割成一个字符串列表,然后使用这个列表为我的解析器做其他很酷的事情…当我添加这行代码时,它告诉我"不能从List<string>转换为IEnumerable<Token>。"我如何转换它?

var token = source.Split().ToList();

Convert a list of IEnumerable<foo> to List<string&g

错误信息的含义与它所说的完全一致。

public IEnumerable<Token> Tokenizer(string source)

返回类型IEnumerable<Token>,但是

var token = source.Split().ToList();

的类型为List<string>。在List<string>List<Token>之间没有转换(或者,在stringToken之间)。

你需要这样做:

var token = source.Split().Select(item => new Token(item)).ToList();

您还需要编写一个构造函数,该构造函数接受string类型,并用它初始化Token

您还可以考虑将Tokenizer方法设置为static,这样您就不需要有一个现有的Token实例来使用它。