以下是我的Enumerator List
:
public enum StatusEnum
{
Open = 1,
Rejected = 2,
Accepted = 3,
Started = 4,
Completed = 5,
Cancelled = 6,
Assigned = 7
}
Run Code Online (Sandbox Code Playgroud)
我需要将它绑定到a Combobox
,但是,只显示一些特定的状态而忽略其余的状态.
这是我到目前为止:
public static List<Activity.StatusEnum> StatusList()
{
IEnumerable<Activity.StatusEnum> query = Enum.GetValues(typeof(Activity.StatusEnum)).Cast<Activity.StatusEnum>()
.Where(x => x == Activity.StatusEnum.Open
|| x == Activity.StatusEnum.Rejected
|| x == Activity.StatusEnum.Accepted
|| x == Activity.StatusEnum.Started);
return query.ToList();
}
Run Code Online (Sandbox Code Playgroud)
但是,我觉得代码有点乱,并不是将过滤Enum
列表绑定到的正确方法Combobox
.任何人都可以建议一个更强大的方法吗?
我可能需要更改选择顺序.所以我需要一个通用的解决方案,它不仅可以获得前X个状态.
我有一个选择查询,其中包含DURATION
用于计算分钟数的列.我想将这些分钟转换为hh:mm
格式.
持续时间的值如 60, 120,150
例如:
60变为 01:00小时
120变为 02:00小时
150变成 02:30小时
另外,这是我检索DURATION(Minutes
)的方法
DATEDIFF(minute, FirstDate,LastDate) as 'Duration (Minutes)'
Run Code Online (Sandbox Code Playgroud) 以下两种方法之间的主要区别是什么:
ThreadPool.QueueUserWorkItem
Clients objClient = new Clients();
List<Clients> objClientList = Clients.GetClientList();
foreach (var list in objClientList)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(SendFilesToClient), list);
}
Run Code Online (Sandbox Code Playgroud)
System.Threading.Tasks.Parallel ForEach
Clients objClient = new Clients();
List<Clients> objClientList = Clients.GetClientList();
Parallel.ForEach<Clients>(objClientList, list =>
{
SendFilesToClient(list);
});
Run Code Online (Sandbox Code Playgroud)
我是多线程新手,想知道在每种情况下会发生什么(在执行过程方面)每种方法的多线程水平是多少?帮助我想象这两个过程.
SendFilesToClient:从数据库获取数据,转换为Excel并将Excel文件发送到相应的客户端.
谢谢!
c# multithreading windows-services queueuserworkitem parallel.foreach
这是我的RESX文件的样子:
Name Value Comments
Rule_seconds seconds seconds
Rule_Sound Sound Sound
Run Code Online (Sandbox Code Playgroud)
我想要的是:按字符串名称值,如下所示:
public string GetResxNameByValue(string value)
{
// some code to get name value
}
Run Code Online (Sandbox Code Playgroud)
并按如下方式实现:
string str = GetResxNameByValue("seconds");
Run Code Online (Sandbox Code Playgroud)
所以这str
将回来Rule_seconds
谢谢!
是否可以在静态Google地图图像上放置(比如说1000个)标记(使用一组LAT-LONG值)?此外,是否有某种HTTP POST
方法来实现这一点或URL是唯一的方法去?
基本上,我正在研究Bing地图REST服务 - Imagery和我发现最多100个图钉(标记)可以放在Bing地图上.
我想生成带有无限标记/图钉的静态地图.Google或Bing并不重要.
像这样:http://msdn.microsoft.com/en-us/library/ff701724.aspx#code-snippet-19
我有以下代码将唯一标识符转换为二进制:
CAST(GUID AS BINARY(16))
Run Code Online (Sandbox Code Playgroud)
这导致了这一点 '0x56B3C0955919CD40931F550749A83AF3'
现在,我想将此(即二进制字符串值 '0x56B3C0955919CD40931F550749A83AF3'
)转换为唯一标识符.
有任何简单的方法来实现这一目
我已经使用Parallel.ForEach功能来同时处理多个客户端,如下所示:
Clients objClient = new Clients();
List<Clients> objClientList = Clients.GetClientList();
Parallel.ForEach<Clients>(objClientList, list =>
{
SendFilesToClient(list);
});
Run Code Online (Sandbox Code Playgroud)
但是现在,我没有创建Client类,而是决定动态创建客户端对象,如下所示:
var xDoc = XDocument.Load(new StreamReader(xmlPath + @"\client.xml"));
dynamic root = new ExpandoObject();
XmlToDynamic.Parse(root, xDoc.Elements().First());
dynamic clients = new List<dynamic>();
for (int i = 0; i < root.clients.client.Count; i++)
{
clients.Add(new ExpandoObject());
clients[i].Id = root.clients.client[i].id;
clients[i].Name = root.clients.client[i].name;
List<string> list = new List<string>();
for (int j = 0; j < root.clients.client[i].emails.email.Count; j++)
{
list.Add(root.clients.client[i].emails.email[j].ToString());
}
clients[i].Email = string.Join(",", list);
}
Run Code Online (Sandbox Code Playgroud)
现在我不使用Client类并动态生成对象,如何使用Parallel.ForEach功能同时处理动态对象中的多个客户端,就像我以前使用类对象一样?
希望我清楚自己.
此外,如果您能告诉我我的方法是否有问题或者告诉我更好的方法,我将不胜感激.
c# parallel-processing .net-4.0 dynamicobject parallel.foreach
我有一个要求,我需要将.NET 4.0项目转换为.NET 3.5项目,其他一切都很好,除了"SmtpClient"到目前为止,我发现.NET 3.5 SmtpClient没有实现IDisposable,而在.NET 4.0中它的确!
下面是在.NET4.0上运行良好但在.NET3.5上运行的代码:
Using MailServer As New SmtpClient(MailServerName)
MailServer.Credentials = New System.Net.NetworkCredential(MailServerUserName, MailServerPassword)
SendMail(MailServer, msgBody, msgSubject, FromEmail, ToEmail)
End Using
Run Code Online (Sandbox Code Playgroud)
任何想法如何使用.NET 3.5(我更喜欢使用"使用"代码块来自动处理对象而不是旧式手动配置)
我有一个Windows服务,我在使用Threadpool.QueueUserWorkItem.该服务连接到多个客户端数据库,抓取数据,转换为XLS并将文件发送到相应的FTP.
关于以下代码我有3个问题:
码:
private static System.Timers.Timer aTimer = new System.Timers.Timer(50000);
public void OnStart(string[] args)
{
CLE.WriteToEventLog("Service Started");
try
{
aTimer.Elapsed += new ElapsedEventHandler(PerformTimerOperation);
aTimer.Enabled = true;
}
catch (Exception ex)
{
CLE.WriteToEventLog("Error Starting Service: " + ex.Message);
}
}
private void PerformTimerOperation(object source, ElapsedEventArgs e)
{
CLE.WriteToEventLog("Timer Operation Started");
Clients objClient = new Clients();
List<Clients> objClientList = Clients.GetClientList();
foreach (var list in objClientList)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(SendFilesToClient), list);
}
}
private void SendFilesToClient(Object stateInfo)
{
CLE.WriteToEventLog("Send Files To …
Run Code Online (Sandbox Code Playgroud) 例如:
var sList = from ASL in aslist
where ASL.Description == as.ToString()
select ASL;
as = sList.FirstOrDefault();
var rList = from ARL in arlist
where ARL.Description == rDescription && ARL.Id == as.Id
select ARL;
Run Code Online (Sandbox Code Playgroud)
现在如您所见,rList
查询的最后一个条件(即&& ARL.Id == as.Id
)基于从sList
查询中检索的值.我的问题是,当sList
是NULL
,我得到一个错误.我想包括最后一个条件(即&& ARL.Id == as.Id
),如果sList
不是null.
我可以使用if else,如下所示,但如果可能的话,我想优雅地使用LINQ:
if (as != null)
{
// include ARL.Id == as.Id condition in the query
}
else
{
// exclude ARL.Id == as.Id condition …
Run Code Online (Sandbox Code Playgroud) 我有一个存储过程,需要5个输入参数.该过程有点复杂,需要大约2分钟才能执行.我正在优化查询.
所以,我的问题是,它是否总是有助于将输入参数分配给局部变量,然后在过程中使用局部变量?
如果是这样,它有什么帮助?
sql t-sql stored-procedures query-optimization sql-server-2008
我知道C#不支持"With"代码块.但是,如何在C#中编写以下代码块:
string SomeString = String.Empty;
With CType(Lookups.LookupManager.Lookups.Item(GetType(Lookups.SomeLists)), Lookups.SomeLists)
SomeString = .SomeDataTableProperty.SomeColumn.ColumnName
End With
Run Code Online (Sandbox Code Playgroud)
谢谢!
c# ×6
.net ×4
t-sql ×3
linq ×2
vb.net ×2
.net-4.0 ×1
bing-api ×1
bing-maps ×1
c#-4.0 ×1
data-binding ×1
datediff ×1
enums ×1
google-maps ×1
idisposable ×1
resx ×1
smtpclient ×1
sql ×1
vb.net-to-c# ×1