我有一个类TFNDailySummaryReport的对象。现在我试图在AffiliateID的基础上检索AnsweredCalls的值。但我得到了 IEnumerable类型而不是字符串。
public class TFNDailySummaryReport
{
public string AffiliateID { get; set; }
public string AnsweredCalls { get; set; }
}
以下是我的尝试:
List<TFNDailySummaryReport> DealerTFNTable = dealerData;
string answeredCalls = DealerTFNTable.Where(d => d.AffiliateID == "1").Select(x => x.AnsweredCalls).ToString();
答案 0 :(得分:0)
List<TFNDailySummaryReport> DealerTFNTable = dealerData;
string answeredCalls = DealerTFNTable.Where(d => d.AffiliateID == "1").FirstOrDefault().AnsweredCalls;
注意: 确保检查null,因为如果找不到匹配项,FirstOrDefault()将返回null
答案 1 :(得分:0)
这里DealerTFNTable是List表示 - DealerTFNTable是一个可以保存TFNDailySummaryReport类型对象的列表。
你的第一个where子句将返回AffiliateID为&#34; 1&#34;由于Where(predicate)
扩展方法始终返回IEnumerable
。
现在您从每个对象中选择AnsweredCalls(由extension方法返回)。所以,它将再次返回IEnumerable字符串。换句话说,你有多个字符串对象。
现在您正在尝试将这些字符串转换为字符串,这将永远不会为您提供您想要查看的结果。
如果您确定只在条件中获得一个值,那么使用FirstOrDefault()
扩展方法会更好。
试试这个:
List<TFNDailySummaryReport> DealerTFNTable = dealerData;
string answeredCalls = DealerTFNTable.Where(d => d.AffiliateID == "1").Select(x => x.AnsweredCalls).FirstOrDefault();
答案 2 :(得分:-1)
您应该选择单个 TFNDailySummaryReport - 因为该表理论上可能包含多个 - AffiliateID为&#34; 1&#34;:
List<TFNDailySummaryReport> DealerTFNTable = dealerData;
TFNDailySummaryReport theReport = DealerTFNTable.FirstOrDefault(d => d.AffiliateID == "1");
...然后访问此特定TFNDailySummaryReport的AnsweredCalls属性:
if(theReport != null)
string answeredCalls = theReport.AnsweredCalls;