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。