我试图将我写的一些代码移动到更通用的方法.虽然方法较长,但我遇到问题的部分如下:
public static void Test()
{
MyObjectType[] list1 = ListMyObjectTypeMethod1();
MyObjectType[] list2 = ListMyObjectTypeMethod2();
List<MyObjectType> linqAblelist1 = new List<MyObjectType>(list1);
List<MyObjectType> linqAblelist2 = new List<MyObjectType>(list2);
IEnumerable<MyObjectType> toBeAdded = linqAblelist1.Where(x => linqAblelist2.All(y => y.Property1 != x.Property1));
IEnumerable<MyObjectType> toBeDeleted = linqAblelist2.Where(a => linqAblelist1.All(b => b.Property1 != a.Property1));
}
Run Code Online (Sandbox Code Playgroud)
我试图为MyObjectType传递一个泛型类型,但我在哪里[如何在这里设置属性?]如何在方法的参数中指定?
public static void Test<T>(T[] x, T[] y)
{
List<T> list1 = new List<T>(x);
List<T> list2 = new List<T>(y);
IEnumerable<T> toBeAdded = list1.Where(x => list2.All(y => y.[How To Set Property Here?] != x.[How To Set …Run Code Online (Sandbox Code Playgroud) 这是一个学术问题比什么都重要......我知道有更多实用的手段可以开发......
假设您有以下代码:
public MyObject1 AssignTest(MyObject1 obj1,MyObject2 obj2){
Run Code Online (Sandbox Code Playgroud)public MyObject1 AssignTest (MyObject1 obj1, MyObject2 obj2) { //Code here for auto map }
MyObject1和MyObject2具有完全相同的可用属性.是否可以自动将MyObject1中指定的所有值分配给MyObject2?而不是通过声明性地分配值(即MyObject1.Property1 = MyObject2.Property1等)
更多的理论问题......
我有一个存在于三台服务器上的powershell脚本.在此示例中,三个服务器是:
我正在使用另一台机器server4,使用Invoke-Command远程调用脚本C:\ ExampleScript.ps1,同时通过ComputerName参数指定远程机器.该脚本的最终目标是检测powershell是否正在运行,如果不是,则计算机"不忙"并且可以打开远程调用的脚本.如果计算机处于"忙碌状态",请移至下一台服务器并继续通过三台计算机,直到所有参数值都已耗尽.如果所有机器都很忙,那么如果有办法定期检查流程并查看它们是否仍处于打开状态,那将是理想的选择.以这种方式,脚本的执行可以在各种机器上以尽管原始的方式平衡.
请考虑以下代码:
$servers = "server1","server2","server3"
$data = "param1", "param2", "param3", "param4", "param5", "param6"
#somehow loop through the different servers/data using the above arrays
$job = Invoke-Command $servers[0] {
$ProcessActive = Get-Process powershell -ErrorAction SilentlyContinue
if($ProcessActive -eq $null)
{
"Running"
Invoke-Command -ComputerName $env:computername -FilePath C:\ExampleScript.ps1 -ArgumentList $data[0]
}
else
{
"Busy go to next machine"
}
} -AsJob
Wait-Job $job
$r = Receive-Job $job
$r
Run Code Online (Sandbox Code Playgroud)
试图实现的预期结果是尝试基于是否存在活动的PowerShell进程来跨机器来平衡脚本,如果不是移动到下一个机器并执行相同的测试和随后的可能执行.该脚本应该遍历$ data数组(或其他)中指定的所有值.
试图找到这个问题的答案已经证明是困难的,因为所有的答案都涉及 SQL!
我有一个数据表TestTable。在这个数据表中,我有三列ID,ValueX、 和ValueY。当我向这个数据表添加新记录时,我试图创建一个插入方法来查看记录是否存在,但无法获取 Select 语句以使用多个字段。在我的情况下,我需要查看数据表是否包含等于 ID 和 ValueX 的记录,如果是,则更新。否则,将新记录添加到数据表中。
public void Insert(string ID, string ValueX, string ValueY)
{
DataRow dr = TestTable.NewRow();
dr["ID"] = ID;
dr["ValueX"] = ValueX
dr["ValueY"] = ValueY;
TestTable.Rows.Add(dr);
}
Run Code Online (Sandbox Code Playgroud) 我有一个从事件处理程序调用 powershell 脚本的程序。powershell脚本是第三方提供的,我没有任何控制权。
powershell 脚本使用 powershell 进度条。我需要阅读 powershell 脚本的进度,但是由于进度条 System.Management.Automation 命名空间不会将其视为输出。是否可以从外部程序读取 powershell 进度条的值?
进程进程=新进程();
Run Code Online (Sandbox Code Playgroud)process.StartInfo.FileName = "powershell.exe"; process.StartInfo.Arguments = String.Format("-noexit -file \"{0}\"", scriptFilePath); process.Start();
我在目录中有一系列ps1文件,所有这些文件都有不同的名称.我试图用Start-Process和-Wait参数一个接一个地运行它们.如何遍历目录中的所有文件并运行一个又一个的PowerShell脚本?没有子文件夹,也没有不属于ps1类型的文件.
这是我的开始:
$DirectoryList = Get-Content -Path C:\test
foreach ($Directory in $DirectoryList) {
Start-Process -FilePath powershell.exe -ArgumentList ('"{0}\How To Read Me.ps1" -Path "{1}"' -f $PSScriptRoot, $Directory);
}
Run Code Online (Sandbox Code Playgroud) 我试图建立一组枚举选择,以传递给另一个方法的参数.假设你有枚举Foo,如下所示:
public enum Foo
{
x,
y,
z
}
Run Code Online (Sandbox Code Playgroud)
现在,我将循环浏览一些复选框选项,每个选项卡指定是选择X,Y还是Z.
bool allowX = chkBxAllowX.Checked;
bool allowY = chkBxAllowY.Checked;
bool allowZ = allowZ.Checked;
Run Code Online (Sandbox Code Playgroud)
接下来,我必须建立选择以作为Foo枚举类型传递.我知道我可以使用"|"指定多个枚举值 字符,但如何根据其他值(即上述布尔值?)来做到这一点.因此,如果allowX,添加Foo.x,如果allowY,则指定Add Foo.y. 如果allowX和allowY,Foo.x和Foo.y.
我有一个自定义对象的类型集合,有两个DateTime?properties,ExpirationDate和ExpirationDateExtended.我想根据这些属性从这个集合中获取最新信息.通常,使用一个属性,我只使用OrderByDescending方法并获取第一个属性.这在下面说明.
但是,我想要做的是,如果ExpirationDate属性有一个值(不是null),由ExpirationDate属性排序(OrderByDescending),但是如果它没有值(null),那么sort(OrderByDescending)由ExpirationDateExtended属性.
在下面,myCollection变量表示我的自定义对象的集合.
var latestExpirationDate = myCollection
.Where(item => item.ExpirationDate.HasValue)
OrderByDescending(item => item.ExpirationDate)
.Select(item => item.ExpirationDate)
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud) 如果您有以下方法,其中调用Action参数的结果将返回传入的通用T1的类型,您将如何编写它?我一直遇到编译器错误.
private static void Test<T1>(T1 report, Action action)
{
report = action;
}
Run Code Online (Sandbox Code Playgroud) MS SQL 2008
我正在执行一个SELECT,我试图将所有记录移动到集合的末尾,如果它们包含某个文本.举个例子:
Example Table
----------------------
ID Text
1 x
2 y
3 z
Run Code Online (Sandbox Code Playgroud)
如何使用上面的表格编写一个查询来返回所有记录,但将记录放在返回集合末尾的Text ='X'.这只是一个示例表,我的条目有很大不同.
我试图将0001的值增加到0002.我已经尝试了整数,但是它将它舍入到2.我还尝试添加浮点数,具有相同的效果:
float newInt = float.Parse("0001") + float.Parse("0001");
Run Code Online (Sandbox Code Playgroud)
如何将数字增量格式化为0001?