如何将方法传递为泛型,并在其中传递类和字符串?

艾伦2

我有一个这样的方法:

    var Start = await cosmosManager.GetDocumentItemsForLogStartAsync();

    public async Task<List<LogStart>> GetDocumentItemsForLogStartAsync()
    {
        List<LogStart> Items2 = new List<LogStart>();
        try
        {
            collectionLink = UriFactory.CreateDocumentCollectionUri(databaseId, collectionId);
            var query = client.CreateDocumentQuery<LogStart>(collectionLink).Where(x => x.Activity == "Start").AsDocumentQuery();
            while (query.HasMoreResults)
            {
                var retrivedData2 = await query.ExecuteNextAsync<LogStart>();
                Items2.AddRange(retrivedData2);
            }
        }
        catch (DocumentClientException ex)
        {
            Debug.WriteLine("Error: ", ex.Message);
        }
        return Items2;
    }

我想做的就是调用这样的方法:

var Start = await cosmosManager.GetDocumentItemsForLogAsync(LogStart, "Start");
var Views = await cosmosManager.GetDocumentItemsForLogAsync(LogViews, "Views");
var Feedback = await cosmosManager.GetDocumentItemsForLogAsync(LogFeedback, "Feedback");

其中LogStart,LogViews和LogFeedback都是类。

有没有一种方法可以更改我的方法,这样可以避免我不得不创建三种不同的方法?

使用C#泛型。

此外,在C#中的局部变量应该是camelCased没有PascalCased

我假设您的Where子句是特定于类型的,这意味着您需要将其移至参数。我认为这需要一个Expression<>overFunc<>而不是一个pure Func<>(取决于您使用的是IQueryable<T>还是IEnumerable<T>)。

    public async Task<List<T> GetDocumentItemsAsync<T>( Expression<Func<T,Boolean>> predicate )
    {
        List<T> list = new List<T>();
        try
        {
            collectionLink = UriFactory.CreateDocumentCollectionUri(databaseId, collectionId);
            var query = client.CreateDocumentQuery<T>(collectionLink)
                .Where( predicate )
                .AsDocumentQuery();

            while (query.HasMoreResults)
            {
                var retrivedData2 = await query.ExecuteNextAsync<T>();
                list.AddRange(retrivedData2);
            }
        }
        catch (DocumentClientException ex)
        {
            Debug.WriteLine("Error: ", ex.Message);
        }
        return list;
    }

像这样使用:

var start = await cosmosManager.GetDocumentItemsAsync<LogStart>( x => x.Activity == "Start" );

var views = await cosmosManager.GetDocumentItemsAsync<LogViews>( x => x.Activity == "Views" );

var feedback = await cosmosManager.GetDocumentItemsAsync<LogFeedback>( x => x.Activity == "Feedback" );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将泛型传递给泛型方法?

来自分类Dev

如何将字符串或类传递给方法以创建实例

来自分类Dev

如何将泛型传递给需要其超类的方法?

来自分类Dev

C#将类作为参数传递给方法,并在其中调用静态方法

来自分类Dev

C#将类作为参数传递给方法,并在其中调用静态方法

来自分类Dev

如何将字符串数组和字符串作为变量传递?

来自分类Dev

如何将列表字符串传递给JLabel并在JFrame中显示

来自分类Dev

如何正确地将字符转换为字符串并在方法中传递字符串?

来自分类Dev

如何将字符数组传递给字符串

来自分类Dev

如何将泛型类扩展为泛型

来自分类Dev

如何将连接字符串传递给类库?

来自分类Dev

如何将字符串从单独的类(Java)传递到void ...?

来自分类Dev

如何将字符串从onclick事件传递给另一个类

来自分类Dev

如何在python中连接字符串和变量并在其中赋值

来自分类Dev

如何将字符串传递给HashSet包含?

来自分类Dev

如何将字符串传递给宏函数

来自分类Dev

如何将公式作为字符串传递?

来自分类Dev

如何将字符串传递给工厂

来自分类Dev

如何将字符串参数传递给jQuery

来自分类Dev

如何将字符串从doInBackground传递给onPostExecute

来自分类Dev

如何将字符串数组传递给函数?

来自分类Dev

如何将字符串从片段传递到活动

来自分类Dev

如何将生成的字符串传递给 EditText?

来自分类Dev

如何将字符串传递给 glutCreateWindow() 函数?

来自分类Dev

如何将JSHandle和本机对象(字符串)传递给Puppeteer评估函数?

来自分类Dev

如何将字符串作为键和值传递到数组中

来自分类Dev

如何将字符串公式传递给R的lm并在摘要中查看该公式?

来自分类Dev

如何将类型参数传递给泛型类构造函数引用?

来自分类Dev

Java类-如何将泛型对象传递给函数

Related 相关文章

  1. 1

    如何将泛型传递给泛型方法?

  2. 2

    如何将字符串或类传递给方法以创建实例

  3. 3

    如何将泛型传递给需要其超类的方法?

  4. 4

    C#将类作为参数传递给方法,并在其中调用静态方法

  5. 5

    C#将类作为参数传递给方法,并在其中调用静态方法

  6. 6

    如何将字符串数组和字符串作为变量传递?

  7. 7

    如何将列表字符串传递给JLabel并在JFrame中显示

  8. 8

    如何正确地将字符转换为字符串并在方法中传递字符串?

  9. 9

    如何将字符数组传递给字符串

  10. 10

    如何将泛型类扩展为泛型

  11. 11

    如何将连接字符串传递给类库?

  12. 12

    如何将字符串从单独的类(Java)传递到void ...?

  13. 13

    如何将字符串从onclick事件传递给另一个类

  14. 14

    如何在python中连接字符串和变量并在其中赋值

  15. 15

    如何将字符串传递给HashSet包含?

  16. 16

    如何将字符串传递给宏函数

  17. 17

    如何将公式作为字符串传递?

  18. 18

    如何将字符串传递给工厂

  19. 19

    如何将字符串参数传递给jQuery

  20. 20

    如何将字符串从doInBackground传递给onPostExecute

  21. 21

    如何将字符串数组传递给函数?

  22. 22

    如何将字符串从片段传递到活动

  23. 23

    如何将生成的字符串传递给 EditText?

  24. 24

    如何将字符串传递给 glutCreateWindow() 函数?

  25. 25

    如何将JSHandle和本机对象(字符串)传递给Puppeteer评估函数?

  26. 26

    如何将字符串作为键和值传递到数组中

  27. 27

    如何将字符串公式传递给R的lm并在摘要中查看该公式?

  28. 28

    如何将类型参数传递给泛型类构造函数引用?

  29. 29

    Java类-如何将泛型对象传递给函数

热门标签

归档