首页 > 解决方案 > 遍历自定义类型列表并返回某个成员以字母“x”开头的第一个对象

问题描述

这应该很容易,但我还没有完全弄清楚:

我有一个我的自定义类型列表Mp3ObjectSmall。这基本上是一个包含 mp3 的列表,其中包含电话上的 URI、艺术家和歌曲名称。这是类型:

public class MP3objectSmall
{
    public string SongName { get; set; }
    public string ArtistName { get; set; }
    public string Mp3Uri { get; set; }
}

这个列表包含大约 700 个项目,每个项目都有不同的歌曲。

现在,对于我的回收站视图,我需要能够例如在我的应用程序中单击字母“x”,然后让一个函数返回一个 int,上面列表中的第一项包含一个“x”作为歌曲名称。

即使我说了 100 首以字母“x”开头的歌曲名称,我也只需要返回第一个项目的位置。

如何找到以某个字母开头的自定义类型列表成员的第一个字符串?

如果有什么不清楚的,就评论吧!

谢谢 :-)

到目前为止我已经尝试过:

        if (letter != "0") // scroll to top when it is 0, so nothing needs to be done here 
        {
            foreach(MP3objectSmall o in Mp3ObjectSmall)
            {
                if (letter.Equals(o.SongName.StartsWith(letter)))
                {

                }

            }
        }

标签: c#list

解决方案


我想你正在寻找FindIndex

var indexOfFirstSongThatStartsWithX = Mp3ObjectSmall
    .FindIndex(s => s.SongName.StartsWith("x"));

这将返回列表中 SongName 属性以x.

如果您想要项目本身,您可以使用Find相同的方式:

var firstSongThatStartsWithX = Mp3ObjectSmall
    .Find(s => s.SongName.StartsWith("x"));

这将返回 SongName 属性以x.


推荐阅读