我看到一个集合有一个.Remove()和一个.RemoveAt()方法.我想做这样的事情:
myObject.ChildList.RemoveWhere(r=>r.Name == "Joe");
Run Code Online (Sandbox Code Playgroud)
除了做一个单独的地方然后循环遍历每个项目并调用它们之外,实现此目的的最佳方法是什么.Remove()
我有一个ASP.NET MVC网站.在我的后端,我有一个名为People以下列的表:
我有一个通用的网页,使用模型绑定来查询这些数据.这是我的控制器动作:
public ActionResult GetData(FilterParams filterParams)
{
return View(_dataAccess.Retrieve(filterParams.Name, filterParams.Age, filterParams.location, . . .)
}
Run Code Online (Sandbox Code Playgroud)
映射到这样的东西:
http://www.mysite.com/MyController/GetData?Name=Bill .. .
Run Code Online (Sandbox Code Playgroud)
dataAccess层只是检查每个参数以查看它是否已填充以添加到db where子句.这非常有效.
我现在希望能够存储用户的过滤查询,我试图找出存储特定过滤器的最佳方法.由于某些过滤器在queryString中只有一个参数,而其他过滤器在过滤器中有10个以上的字段,因此我无法找到将此查询"过滤信息"存储到我的数据库中的最优雅方法.
我能想到的选择是:
有一个完整的表复制(有一些额外的cols),但称之为PeopleFilterQueries并在每个记录中填充一个FilterName并将过滤器的值放在每个字段(名称等)中
存储一个只有FilterName的表和一个字符串,我存储实际的查询字符串Name = Bill&Location = NewYork.这样,如果过滤器更改或增长,我将不必继续添加新列.
这种情况的最佳做法是什么?
我正在使用jquery blockui但是被覆盖的div很长,因此加载消息显示在屏幕上.
反正有没有jquery blockui加载消息垂直居中在可见屏幕上,这样人们可以看到消息而不向下滚动?
我和朋友一直在讨论这个问题,我有一个库(它的python,但我没有把它作为一个标签,因为这个问题适用于任何语言),它有一些依赖关系.争论的焦点是在初始化时是否提供默认环境或强制代码的用户明确设置一个.
我的意见是强制用户明确,并避免混淆,并明确他们指向的内容.
我的朋友这对于默认环境更安全,更方便,如果他愿意,让用户覆盖.
想法?流行的库中是否有任何好的参考或示例/模式支持我们的任何一个参数?还有,讨论这个API设计点的任何流行的博客或文章?
我有一个asp.net mvc网站,并使用javascript树形图控件来显示热图.这个控件工作得很好,但我想看看我是否可以将其他一些json字段粘贴到用于更新另一个div的回调中.
有谁知道这是否可行.现在我必须反复弹跳并做两个单独的ajax调用,但我想看看我是否可以传递这个信息以及treemap json响应.
对于IE7用户,我想提出一些具体的"请立即升级"横幅.我以为我有这个,但我发现我的横幅出现在拥有IE8但默认启用了兼容模式的人身上.
无论如何要区分这两种情况,以便我可以改变我的信息:
请从IE7更新 到您使用的是IE8,但是您使用的是兼容模式,请关闭它
这是我现在在我的视图中使用的代码:
You are using <b><% = Request.Browser.Browser + ", Version: " + Request.Browser.Version%>
Run Code Online (Sandbox Code Playgroud)
但如果我在IE8中使用兼容性视图进行测试,则在客户端使用上面的代码或此代码:
<!--[if lte IE 7]>
Run Code Online (Sandbox Code Playgroud)
它返回true并显示为IE7.我如何区分这两者?
asp.net-mvc upgrade internet-explorer-7 conditional-statements
我有一个XMLDocument,我需要读入并转换为一组对象.我有以下物品
public class Location
{
public string Name;
public List<Building> Buildings;
}
public class Building
{
public string Name;
public List<Room> Rooms;
}
Run Code Online (Sandbox Code Playgroud)
我有以下XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<info>
<locations>
<location name="New York">
<Building name="Building1">
<Rooms>
<Room name="Room1">
<Capacity>18</Capacity>
</Room>
<Room name="Room2">
<Capacity>6</Capacity>
</Room>
</Rooms>
</Building>
<Building name="Building2">
<Rooms>
<Room name="RoomA">
<Capacity>18</Capacity>
</Room>
</Rooms>
</Building>
</location>
<location name ="London">
<Building name="Building45">
<Rooms>
<Room name="Room5">
<Capacity>6</Capacity>
</Room>
</Building>
</location>
</locations>
</info>
Run Code Online (Sandbox Code Playgroud)
这样做的最佳方式是什么?我应该自动将xmldocument序列化到对象还是我需要解析每个元素并手动转换为我的对象?特别是,我试图弄清楚如何转换集合(位置,建筑物等).
将此XML文件转换为基本的最佳建议是什么?
List<Location>
Run Code Online (Sandbox Code Playgroud)
对象?
我有以下代码从位置转换为TimeZone名称.
public TimeZoneResponse ConvertCityToTimeZoneName(string location)
{
TimeZoneResponse response = new TimeZoneResponse();
var plusName = location.Replace(" ", "+");
var address = "http://maps.google.com/maps/api/geocode/json?address=" + plusName + "&sensor=false";
var result = new System.Net.WebClient().DownloadString(address);
var latLongResult = JsonConvert.DeserializeObject<GoogleGeoCodeResponse>(result);
if (latLongResult.status == "OK")
{
var timeZoneRespontimeZoneRequest = "https://maps.googleapis.com/maps/api/timezone/json?location=" + latLongResult.results[0].geometry.location.lat + "," + latLongResult.results[0].geometry.location.lng + "×tamp=1362209227&sensor=false";
var timeZoneResponseString = new System.Net.WebClient().DownloadString(timeZoneRespontimeZoneRequest);
var timeZoneResult = JsonConvert.DeserializeObject<TimeZoneResult>(timeZoneResponseString);
if (timeZoneResult.status == "OK")
{
response.TimeZoneName = timeZoneResult.timeZoneName;
response.Success = true;
return response;
}
}
return response;
Run Code Online (Sandbox Code Playgroud)
}
因此,当我通过"纽约,美国"时,它返回"东部标准时间"
然后我有第二个函数将一个源时区的时间转换为上面的另一个检索时区. …
我正在使用jqgrid,我有一个带下拉列表的过滤器行,允许人们从项目列表中进行选择.我认为加载所有下拉列表会浪费很多周期,因为人们可能不会选择其中任何一个.
无论如何,推迟ajax调用以获取下拉列表,直到有人实际点击下拉过滤器中的箭头.我看到其他一些网格库就是这样做的.
我必须从更大的字符串中解析出系统名称.系统名称的前缀为"ABC",然后是数字.一些例子是:
ABC500
ABC1100
ABC1300
Run Code Online (Sandbox Code Playgroud)
我需要解析系统名称的完整字符串可以看起来像下面的任何项目:
ABC1100 - 2ppl
ABC1300
ABC 1300
ABC-1300
Managers Associates Only (ABC1100 - 2ppl)
Run Code Online (Sandbox Code Playgroud)
在我看到最后一个之前,我有一个非常好的代码:
string[] trimmedStrings = jobTitle.Split(new char[] { '-', '–' },StringSplitOptions.RemoveEmptyEntries)
.Select(s => s.Trim())
.ToArray();
return trimmedStrings[0];
Run Code Online (Sandbox Code Playgroud)
但是在最后一个例子中,它在ABC之前有一堆其他文本失败了.
任何人都可以建议在这里解析系统名称的更优雅和未来的方法吗?
c# ×4
asp.net-mvc ×2
jquery ×2
ajax ×1
api ×1
blockui ×1
callback ×1
collections ×1
converter ×1
datetime ×1
default ×1
environment ×1
javascript ×1
jqgrid ×1
json ×1
linq ×1
parsing ×1
query-string ×1
string ×1
timezone ×1
treemap ×1
upgrade ×1
xml ×1
xmldocument ×1