如何获取列表中所有不同值的字符串[]?

iTa*_*ayb 3 c#

我有一个包含list<Book>in 的类,这些Book对象有很多属性. string Subject是其中一个属性.

我想获得一个string[]类型值,其中包括来自整个列表的所有不同主题.

有没有一种优雅的方法,或者我必须扫描整个列表并输入每个主题,然后删除重复项?

Nag*_*agg 9

 string[] subjects = books.Select(i => i.Subject).Distinct().ToArray();
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 5

这将返回不同的主题:

books.Select(b => b.Subject).Distinct()
Run Code Online (Sandbox Code Playgroud)

要使用字符串创建数组,请使用ToArray方法:

string[] subjects = books.Select(b => b.Subject).Distinct().ToArray();
Run Code Online (Sandbox Code Playgroud)