0

我正在准备一份报告,我需要对系统中的每个用户进行分类。大约有 15K 用户。

所以我会检查每个用户,检查他们的各种条件,并根据条件将每个用户分配到一个列表中。

大约有 8-9 个列表,这意味着系统中有大约 8-9 个用户类别。

现在我需要以一些易于理解的格式报告这些用户。我正在考虑一个 CSV 文件,其中的列将代表这 8-9 个类别,并且在每个列标题下,我将拥有该列表中的用户。

我可以将所有这些列表写入 CSV,但随后它们会出现在另一个之下。我不知道如何将它们写成表格格式,以便于阅读和理解。

例如,让我们考虑一下我有三类用户。

category1: abc, def, ghi
category2: lmn, opq, rst
category3: uvw, xyz, adf

所以我的输出应该如下所示:

category1      category2      category3
abc              lmn             uvw
def              opq             rst
uvw              xyz             adf

我也愿意接受其他关于如何以易于理解的格式输出结果的建议。

4

2 回答 2

0

如果您将在 Excel 之类的文件中使用这些 CSV,我相信您现在拥有的格式是理想的。

为了输出结果,像这样的东西呢:

// Get categories with all users in it
// and get max count in a category across all categories
List<List<Category>> categories = GetCategoriesWithUsers();
int maxUsersInCategory = categories.Max(x => x.Count);

using (StreamWriter writer = new StreamWriter("output.csv")
{
    // Loop through each user per category
    for (int userCount = 0; userCount < maxUseresInCategory; userCount++)
    {
       string outputLine = string.Empty;

       // Loop through each category
       foreach(List<Category> category in categories)
       {
          // If category end isn't reached, add user
          if (category.Length > userCount)
          {
              outputLine += category[userCount];
          }

          outputLine += ",";
       }

       outputLine = outputLine.Remove(outputLine.Length - 1);
       writer.WriteLine(outputLine);
    }
}
于 2012-05-21T06:12:23.340 回答
0

出于导出数据的目的,或为了存储在数据库中,您只能使用一种格式:

user   category
user1  category1
user1  category2
user2  category1
user2  category2

Excel 和任何其他报告平台都可以将此数据转换为所需的格式 - 例如

user   category1  category2  category3
user1  x          x
user2  x                     x
于 2012-05-21T05:33:03.773 回答