我需要验证要检索的属性名称的用户输入。
例如,用户可以为 Windows 窗体控件对象键入“Parent.Container”属性或仅键入“Name”属性。然后我使用反射来获取属性的值。
我需要的是检查用户是否输入了 c# 属性的合法符号(或者只是像 \w 这样的合法单词符号),并且这个属性是否可以复合(包含两个或多个用点分隔的单词)。
我现在有这个,这是一个正确的解决方案吗?
^([\w]+\.)+[\w]+$|([\w]+)
Run Code Online (Sandbox Code Playgroud)
我使用了Regex.IsMatch方法,true当我通过"?someproperty"时它返回,尽管 "\w" 不包括 "?"
我需要代码使用常规javascript来检测JQuery是否存在,如果没有,从谷歌或其他网站加载JQuery文件
更新两个工作解决方案(只需在此复制和粘贴工作代码):
来自Claudio Redi
window.jQuery || document.write("<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'>\x3C/script>")
Run Code Online (Sandbox Code Playgroud)
来自Rob Darwin
var jQueryScriptOutputted = false;
function initJQuery() {
if (typeof(jQuery) == 'undefined') {
if (! jQueryScriptOutputted) {
jQueryScriptOutputted = true;
document.write("<scr" + "ipt type=\"text/javascript\" src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"></scr" + "ipt>");
}
setTimeout("initJQuery()", 50);
}
}
initJQuery();
Run Code Online (Sandbox Code Playgroud) 我需要对一个集合进行排序.例如,我有
Austin 12/3/2012
Sam 100 12/3/2012
Sam 200 14/3/2012
Bubly 300 12/3/2012
Bubly 300 15/3/2012
ram 100 13/3/2012
Run Code Online (Sandbox Code Playgroud)
现在,如果排序顺序是Name,则datetime然后输出
Austin 12/3/2012
Bubly 12/3/2012
Bubly 15/3/2012
ram 13/3/2012
sam 12/3/2012
sam 14/3/2012
Run Code Online (Sandbox Code Playgroud)
如果他的排序顺序是Datetime,那么它应该是
12/3/2012 austin
12/3/2012 bubly
12/3/2012 sam
13/3/2012 ram
14/3/2012 sam
15/3/2012 bubly
Run Code Online (Sandbox Code Playgroud)
因此对于其他项目.我该怎么做呢 ?如何使用列的顺序进行排序.
我试图将字符串传递给json对象,它的工作原理.然而,在json中有一些反斜杠和双引号!我该如何删除它们?
我正在使用c#Web API.这是我的代码.
public string jsonvalues()
{
var x = new
{
status = "Success"
};
var javaScriptSerializer = new
System.Web.Script.Serialization.JavaScriptSerializer();
var jsonString = javaScriptSerializer.Serialize(x);
return jsonString;
}
Run Code Online (Sandbox Code Playgroud)
当我在控制器中返回此函数时,我得到这样的结果
"{\" 状态\ ":\" 成功\ "}"
我NavigationItem有导航属性NavigationItemsPermissions,我有RoleId。作为函数中的输入参数,我List<int> roleIds将拥有类似 {1, 3} 的内容。
我如何完成我的工作并把输入列表中的一些内容LINQ还给我。另外请注意,我只想要输入列表中包含的内容。NavigationItemNavigationItemsPermissions RoleIdNavigationItemsPermissionsRoleId
这就是我被困的地方
public List<NavigationItem> GetNavigationItems(MenuType menuType, List<int> roleIds)
{
var navigationItems = DbContext.NavigationItems.Where(x => x.MenuTypeId == (int) menuType && !x.IsDeleted && x.NavigationItemsPermissions.Any(r=>r.RoleId **in roleIds**)));
return navigationItems;
}
Run Code Online (Sandbox Code Playgroud)
举个更简单的比喻(不是真实数据),如果有一个开发者列表
developers: [
{ name: "Hickory", skills: ["c#", "js", "linq"] }
{ name: "Dickory", skills: ["html", "css", "js"] }
{ name: "Dock", skills: ["html", "c#", "oracle"] }
]
Run Code Online (Sandbox Code Playgroud)
以及给定的技能列表list …
我有两个string array小号
array1 = { "test", "test", "test" }
array2 = { "completed", "completed", "completed" }
Run Code Online (Sandbox Code Playgroud)
我想加入两个数组中的字符串(它们总是大小相同) - >所以我想要一个包含一个数组的数组
array = { "test completed", "test completed", "test completed" }
Run Code Online (Sandbox Code Playgroud)
我找到的所有东西都只加入数组,所以我有6个数组.是否可以在不循环整个数组的情况下执行此操作(即使用LINQ或类似的东西)?
我有一个叫Customer有几个字符串属性的类
firstName, lastName, email, etc.
Run Code Online (Sandbox Code Playgroud)
我从一个csv创建该类数组的文件中读取客户信息:
Customer[] customers
Run Code Online (Sandbox Code Playgroud)
我需要删除具有相同电子邮件地址的重复客户,每个特定电子邮件地址只留下1个客户记录.
我使用2个循环完成了这项工作,但由于通常有50,000多个客户记录,因此需要将近5分钟.完成删除重复项后,我需要将客户信息写入另一个csv文件(此处无需帮助).
如果我Distinct在循环中执行了一个循环,那么如何删除作为该特定客户的类的一部分的其他字符串变量?
谢谢,安德鲁
如何迭代List<Galaxy>并打印出每个属性的值,而无需显式编写属性名称?
例如,我使用此代码写入所有属性的属性值galaxy
private static void IterateThroughList()
{
var theGalaxies = new List<Galaxy>
{
new Galaxy() { Name = "Tadpole", MegaLightYears = 400},
new Galaxy() { Name = "Pinwheel", MegaLightYears = 25}
};
foreach (Galaxy theGalaxy in theGalaxies)
{
// this part is of concern
Console.WriteLine(theGalaxy.Name + " " + theGalaxy.MegaLightYears);
}
}
Run Code Online (Sandbox Code Playgroud)
我试图避免这一行中的显式属性名称
Console.WriteLine(theGalaxy.Name + " " + theGalaxy.MegaLightYears);
Run Code Online (Sandbox Code Playgroud)
这样,如果我的Galaxy类具有比 和 更多的属性Name,MegaLightYears它也会自动打印它们。
在我的应用程序中,我需要在不同的对象对之间进行许多映射(域对象,DTO,ViewModels等)。我AutoMapper为此大量使用。
因此,我有一个通用的Mapper类,该类具有映射不同对象的方法。作为映射在应用程序中坚持,我尽我CreateMap()的static constructor,这样的映射创建只有一次,是由我可能会使用他们的时间准备。这个班级看起来像这样
public class SomeMapper
{
static SomeMapper()
{
Mapper.CreateMap<SomeType1, SomeOtherType1>();
Mapper.CreateMap<SomeType2, SomeOtherType2>();
Mapper.CreateMap<SomeType3, SomeOtherType3>();
//...
}
public SomeOtherType1 MapSomeHierarchy1(SomeType1 source)
{ //... }
public SomeOtherType2 MapSomeHierarchy2(SomeType2 source)
{ //... }
}
Run Code Online (Sandbox Code Playgroud)
问题1:什么是创建映射的更好方法?(以任何方式更好-性能,语义,标准惯例等)
问题2:此代码也用于Console应用程序中。在特定的运行中,它不需要所有映射。因此,与其急切地创建所有映射,不可以在运行时创建映射(如果尚不存在)?就像是
public SomeOtherTypeN MapSomeHierarchyN(SomeTypeN source)
{
if (!AlreadyMapped(SomeTypeN, SomeOtherTypeN))
Mapper.CreateMap<SomeTypeN, SomeOtherTypeN>();
return Mapper.Map<SomeOtherTypeN>(source);
}
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法来实现该方法AlreadyMapped()?
我的数据表工资列是string列,用户以字符串格式给出输入值,例如userInput="1000". 但工资列中存储的数据如下图所示。如何将用户输入与数据表中存储的数据进行比较?
我当前的代码是
DataRows[] rows = dt.Select("Salary='"+userInput+"'");
Run Code Online (Sandbox Code Playgroud) c# ×9
linq ×3
.net ×2
arrays ×2
ado.net ×1
asp.net-mvc ×1
automapper ×1
automapper-3 ×1
class ×1
datatable ×1
duplicates ×1
html ×1
javascript ×1
join ×1
jquery ×1
json ×1
regex ×1
sorting ×1
sql ×1