从方法返回带有guid和字符串的Object

时间:2013-08-14 21:40:36

标签: c# asp.net-mvc

我有这个方法,我传入一个文件名和文件路径,我将保存到。 该文件放在一个for循环中,以便我将每个页面保存为一个单独的文件。同时每个页面都会包含我正在阅读的条形码。我想将每个条形码和文件路径存储在我返回的列表中,以便我可以在不同的方法中使用。

public __________ InputFile(string fileName, string filePath)
{
     for(int page = 1; page <= fileName.PageCount; page++)
     {
          read barcode
          save page as new file
     }
     return ___________;
}

我已经拥有了我需要阅读的内容并保存文件我只是想知道如何设置它以返回条形码和路径的对象?

4 个答案:

答案 0 :(得分:1)

基本答案是编写自己的类来存储值并返回该类型的List。如果您不想编写自己的类,那么可以考虑使用System.Tuple<T,U>类型。

修改

以下是类的外观(类和属性名称可以更改为您想要的任何内容)。

public class Result
{
  public Guid Barcode {get; set;}
  public string Value {get; set;}
}

在您的方法中,创建一个List<Result>的新实例,并为循环的每次迭代创建一个新的Result实例并将其添加到列表中,然后返回列表。

答案 1 :(得分:1)

最好的选择是创建一个显式类来存储这些值并返回类的实例。

public class MyResult
{
    public Guid Barcode { get; set; }
    public string Path { get; set; }
}

public MyResult InputFile(string fileName, string filePath) { ... }

或者您可以使用Tuple,然后返回Tuple<Guid, string>并使用Tuple.Create(guid, path)创建它。您可以使用属性Item1Item2访问值。由于这个命名,你真的应该使用第一种方法,因为它更明确。

答案 2 :(得分:0)

您可以返回

IEnumerable<Tuple<Barcode, string>>

如果你不想再上一堂课。

答案 3 :(得分:0)

使用2个属性创建自己的对象或使用元组

Tuple<GUID, string> tuple = new Tuple<GUID, string>();