Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查找给定func的字符串<;T、 对象>;param_C#_.net_Asp.net Mvc - Fatal编程技术网

C# 查找给定func的字符串<;T、 对象>;param

C# 查找给定func的字符串<;T、 对象>;param,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,鉴于此代码 namespace GridTests { public class Grid<T> { IEnumerable<T> DataSource { get; set; } IList<Column> Columns = new List<Column>(); class Column { public string DisplayTe

鉴于此代码

namespace GridTests
{
    public class Grid<T>
    {
        IEnumerable<T> DataSource { get; set; }
        IList<Column> Columns = new List<Column>();

        class Column
        {
            public string DisplayText { get; set; }
            Func<T, object> Rowdata { get; set; }
        }
    }
}
名称空间网格测试
{
公共类网格
{
IEnumerable数据源{get;set;}
IList Columns=新列表();
类列
{
公共字符串DisplayText{get;set;}
Func行数据{get;set;}
}
}
}
我需要能够循环遍历columns集合,并使用DisplayText获取Rowdata的对象值

谢谢

IEnumerable搜索(字符串查找)
{
foreach(yourGridInstance.Columns中的列)
{
if(column.DisplayText.Equals)(yourLookup、YourStringComparisonOptions)
{
foreach(yourGridInstance.DataSource中的T值)
{
收益率返回列.Rowdata(T);
}
}
}
}
Linq版本

 IEnumerable<object> Search(string yourLookup)
 {
      return yourGridInstance.Columns
          .Where(column=>column.DisplayText.Equals(yourLookup, yourStringcomparaisonOptions))
          .SelectMany(c=> yourGridInstance.DataSource.Select(data=>c.RowData(data)));
 }
IEnumerable搜索(字符串查找)
{
返回你的GridInstance.Columns
.Where(column=>column.DisplayText.Equals(yourLookup,YourStringComparisonOptions))
.SelectMany(c=>yourGridInstance.DataSource.Select(data=>c.RowData(data));
}
IEnumerable搜索(字符串查找)
{
foreach(yourGridInstance.Columns中的列)
{
if(column.DisplayText.Equals)(yourLookup、YourStringComparisonOptions)
{
foreach(yourGridInstance.DataSource中的T值)
{
收益率返回列.Rowdata(T);
}
}
}
}
Linq版本

 IEnumerable<object> Search(string yourLookup)
 {
      return yourGridInstance.Columns
          .Where(column=>column.DisplayText.Equals(yourLookup, yourStringcomparaisonOptions))
          .SelectMany(c=> yourGridInstance.DataSource.Select(data=>c.RowData(data)));
 }
IEnumerable搜索(字符串查找)
{
返回你的GridInstance.Columns
.Where(column=>column.DisplayText.Equals(yourLookup,YourStringComparisonOptions))
.SelectMany(c=>yourGridInstance.DataSource.Select(data=>c.RowData(data));
}

您的问题仍然不太清楚。我不确定您想提供RowData方法的是哪个T。如果您想使用数据源枚举器中的每个T运行该方法,您可以这样做

public void Enumerate(string displayText)
{
     Column column = this.Columns.FirstOrDefault(item => item.DisplayText == displayText);

     if (column != null)
     {
          foreach (T key in DataSource)
          {
               object value = column.Rowdata(key);
               // Do something with your value here.
          }
     }
     else
     {
         throw new ArgumentException("DisplayText not found in Columns.", "displayText");
     }
}

您的问题仍然不是很清楚。我不确定您想提供RowData方法的是哪个T。如果您想使用数据源枚举器中的每个T运行该方法,您可以这样做

public void Enumerate(string displayText)
{
     Column column = this.Columns.FirstOrDefault(item => item.DisplayText == displayText);

     if (column != null)
     {
          foreach (T key in DataSource)
          {
               object value = column.Rowdata(key);
               // Do something with your value here.
          }
     }
     else
     {
         throw new ArgumentException("DisplayText not found in Columns.", "displayText");
     }
}

您的意思是DisplayText应该是函数返回的对象的属性吗?它不是很清楚…您的问题很不清楚。请重新表述您的问题。抱歉,让我试着更清楚一些。类似于此私有字符串LoopUp(string DisplayText){foreach(列中的var col){if(col.DisplayText==DisplayText)返回col.Rowdata;//这里我希望能够读取Rowdata属性的对象值}您的意思是DisplayText应该是函数返回的对象的属性吗?它不是很清楚…您的问题很不清楚。请重新表述您的问题。抱歉,让我试着更清楚一些。类似于此私有字符串LoopUp(string DisplayText){foreach(列中的var col){如果(col.DisplayText==DisplayText)返回col.Rowdata;//这里我希望能够读取Rowdata属性的对象值}此外,还需要将Rowdata方法标记为public或internal。此外,还需要将Rowdata方法标记为public或internal。