我有一个类(一个Web控件),它具有IEnumerable类型的属性,并希望使用LINQ处理该参数.
有没有办法通过反射转换/转换/调用IEnumerable <T>在编译时不知道类型?
Method void (IEnumerable source)
{
var enumerator = source.GetEnumerator();
if (enumerator.MoveNext())
{
var type = enumerator.Current.GetType();
Method2<type>(source); // this doesn't work! I know!
}
}
void Method2<T>(IEnumerable<T> source) {}
Run Code Online (Sandbox Code Playgroud) 以下适用于IEnumerable类型,但有没有办法得到这样的东西使用IQueryable类型对sql数据库?
class Program
{
static void Main(string[] args)
{
var items = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, };
foreach (var item in items.Where(i => i.Between(2, 6)))
Console.WriteLine(item);
}
}
static class Ext
{
public static bool Between<T>(this T source, T low, T high) where T : IComparable
{
return source.CompareTo(low) >= 0 && source.CompareTo(high) <= 0;
}
}
Run Code Online (Sandbox Code Playgroud) 有没有办法可选地返回一个带有"return yield"驱动迭代器的null?
我想在某些情况下返回null,我不认为这是IEnumerable类型字符串的特殊情况.同样适用于类型为int等的IEnumerable.谢谢
static void Main(string[] args)
{
var Items = GetItems();
if (Items != null)
{
foreach (var item in Items)
{
Console.WriteLine(item);
}
}
else
{
Console.WriteLine("<null>");
}
}
static IEnumerable<string> GetItems()
{
if (false)
{
yield return "Andy";
yield return "Jennifer";
}
return null; // <- Compiler Error:
// Cannot return a value from an iterator.
// Use the yield return statement to return a value,
// or yield break to end the iteration.
}
Run Code Online (Sandbox Code Playgroud) 我的一位同事想出了这个,我想知道别人怎么想?就个人而言,我觉得它很有趣,但想知道它是否太大了?代码示例如下.底部的扩展方法.
请一般的想法.可以添加的其他扩展方法?
var ddl = Page.FindControl("LocationDropDownList") as DropDownList;
ddl.Visible = true;
ddl.SelectedValue = "123";
if(isAdmin)
ddl .SelectedValue = "111";
Run Code Online (Sandbox Code Playgroud)
变为:
Page.FindControl("LocationDropDownList")
.CastAs<DropDownList>()
.With(d => d.Visible = true)
.With(d => d.SelectedValue = "123")
.WithIf(isAdmin, d => d.Items.Add(new ListItem("Admin", "1")));
Run Code Online (Sandbox Code Playgroud)
要么:
Page.FindControl("LocationDropDownList")
.CastAs<DropDownList>()
.With(d =>
{
d.Visible = true;
d.SelectedValue = "123";
})
.WithIf(isAdmin, d => d.SelectedValue = "111");
Run Code Online (Sandbox Code Playgroud)
扩展方法:
public static TResult CastAs<TResult>(this object obj) where TResult : class
{
return obj as TResult;
}
public static T With<T>(this T t, …
Run Code Online (Sandbox Code Playgroud) jquery 1.9.0中没有live()
函数,但jquery.unobtrusive.ajax.js已经使用了这个函数.
我应该使用旧版本的jquery还是其他方式?
我使用标准的jQuery Datepicker,我需要根据一些日常状态信息修改每个TD中的文本.我意识到我可以连接"beforeShowDay"事件,但这只允许我修改每个日期的css信息.希望在整个日历上举办活动,例如"afterRender"等.
我可以修改显示的第一个日历,但如果用户更改了几个月或几年,我(或我的代码)就不在循环中了.
想知道是否有任何方法可以获得LINQ"查询"语法表达式产生的lambda表达式.
鉴于:
var query = from c in dc.Colors
where c.ID == 213
orderby c.Name, c.Description
select new {c.ID, c.Name, c.Description };
Run Code Online (Sandbox Code Playgroud)
有没有办法获得生成的"lambda"代码/表达式?
var query = dc.Colors
.Where(c => c.ID == 213)
.OrderBy(c => c.Name)
.ThenBy(c => c.Description)
.Select(c => new {c.ID, c.Name, c.Description, });
Run Code Online (Sandbox Code Playgroud)
我知道这些是非常简单的示例,并且C#编译器在编译代码时从查询表达式生成lambda表达式.有没有办法得到那个表达的副本?
我希望将此作为我的一些团队成员的训练工具,他们对lambda表达式不太满意.此外,我使用过Linq Pad,但理想情况下,这可以在没有第三方工具的情况下完成.
任何人都想评论我们是否应该在LINQ Where()扩展/查询中使用"I"或"II"和"&"或"&&"?与LINQ to SQL有什么区别?由此产生的表达树比星期五下午我的大脑还要多
谢谢,
static void Main(string[] args)
{
var numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var q1 = numbers.Where(i => i == 1 | i == 2);
var q2 = numbers.Where(i => i == 1 || i == 2);
var q3 = numbers.Where(i => i == 1 & i < 3);
var q4 = numbers.Where(i => i == 1 && i < 3);
Write(q1);
Write(q2);
Write(q3);
Write(q4);
}
static …
Run Code Online (Sandbox Code Playgroud) 我是一个服务器人,有限但不断增长的客户端(javascript)能力.
我有一个应用程序,需要六个DIV标签,内部背景图像和文本都位于较大的图像上.使用翻转和文本来考虑透明图像.所有这些都是动态的,具体取决于服务器端模板和配置.
我发现使用核心jQuery position()方法以编程方式定位这些方法比尝试纯CSS和基于标记的方法要容易得多.有许多技术可以使用CSS在DIV中对文本进行顶点居中,但position()只是简单了.
我的问题:
广泛使用position()与使用更多纯标记(传统HTML和CSS)的方法的方法有效吗?我意识到最终,大多数jQuery方法都转换为样式和CSS.
我作为一名Web开发人员为一家规模较大的医疗机构工作,最近负责为移动开发开发一套标准和可能的参考应用程序.我们当前的方法在很大程度上依赖于asp.net 3.5以及在我们所有应用程序中都很常见的大型框架库.
我刚刚开始涉足jQuery Mobile,看来我们提出的任何解决方案或方向都将严重依赖于该框架.
问题:
在asp.net Web表单上尝试jQuery Mobile解决方案是否合理?我意识到jQuery Mobile没有以传统的Web表单方式使用post backs,但可以做到吗?MVC解决方案会有多好?(我和两者都合作过,不想进入更大的Web Forms与MVC的讨论,但想知道jQuery Mobile是否能比其他的更好.)
如何在jQuery Mobile应用程序中保存数据?我得到了data-role ="page"的想法,但是数据通常是通过不依赖于传统客户端回发的ajax调用保存到后端Web服务器的吗?如果没有,那怎么样?如果它通常依赖于ajax,那么使用Web Forms的想法是愚蠢的吗?
谢谢,