如何简洁地使用FontFamily

How to Use FontFamily in a concise manner

我是 C# 编程的新手,我有一个涉及 FontFamily 的函数。该代码似乎工作正常,但我希望它以更简洁的方式编写。

我在网上搜索过,但似乎无法找到正确的解决方案。下面的代码是我目前的代码。

public FontFamily[] FontFamilyExt()
    {

        FontFamily[] f = 
           {new FontFamily(_fnt[0]),
            new FontFamily(_fnt[1]),
            new FontFamily(_fnt[2]),
            new FontFamily(_fnt[3]),
            new FontFamily(_fnt[4]),
            new FontFamily(_fnt[5]),
            new FontFamily(_fnt[6]),
            new FontFamily(_fnt[7]),
            new FontFamily(_fnt[8]),
            new FontFamily(_fnt[9]),
            new FontFamily(_fnt[10]),
            new FontFamily(_fnt[11]),
            new FontFamily(_fnt[12]),
            new FontFamily(_fnt[13]),
            new FontFamily(_fnt[14]),
            new FontFamily(_fnt[15]),
            new FontFamily(_fnt[16]),
            new FontFamily(_fnt[17]),
            new FontFamily(_fnt[18]),
            new FontFamily(_fnt[19]),
            new FontFamily(_fnt[20]),
            new FontFamily(_fnt[21]),
            new FontFamily(_fnt[22]),
            new FontFamily(_fnt[23]),
            new FontFamily(_fnt[24]),
            new FontFamily(_fnt[25]),
            new FontFamily(_fnt[26]),
            new FontFamily(_fnt[27]),
            new FontFamily(_fnt[28]),
            new FontFamily(_fnt[29]),
            new FontFamily(_fnt[30]),
            new FontFamily(_fnt[31])
        };

        return f;
    }

我正在寻找功能相似但使用更少代码的东西。提前谢谢你。

您可以按照建议使用循环。您也可以使用 Enumerable.Range,这基本上会在幕后创建一个循环,但会将代码放在一行中。类似于:

using System.Linq;

public FontFamily[] FontFamilyExt()
{
  return Enumerable.Range(0, 32).Select(x => new FontFamily(_fnt[x])).ToArray();
}

你可以试试这个:

public FontFamily[] FontFamilyExt()
{
  FontFamily[] f = new FontFamily[32];
  for ( int index = 0; index <= 31; index++ )
    f[index] = new FontFamily(_fnt[index]);
  return f;
}