我有一个简化的字符串,"12345"
它被排序.字符串couild包含数字(0-9)或字母(az).在混合使用的情况下,自然排序顺序.我需要一种方法来验证这是否属实.
使用linq技术尝试:
string items1 = "2349"; //sorted
string items2 = "2476"; //not sorted, 6<>7
bool sorted1 = Enumerable.SequenceEqual(items1.OrderBy(x => x), items1); //true
bool sorted2 = Enumerable.SequenceEqual(items2.OrderBy(x => x), items2); //false
Run Code Online (Sandbox Code Playgroud)
但也可能有降序排序.
那么有更好的方法吗?
string items3 = "4321";
bool sorted3 = Enumerable.SequenceEqual(items3.OrderBy(x => x), items3) || Enumerable.SequenceEqual(items3.OrderByDescending(x => x), items3);
Run Code Online (Sandbox Code Playgroud)
检查字符串是否已排序?也许一些内置的解决方案?
我有一个Parent
包含Child
对象集合的类,其中Child
有两个属性:Key
和Value
:
class Parent
{
public IEnumerable<Child> Children { get; set; }
}
class Child
{
public String Key { get; set; }
public String Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我需要List<Parent>
按其分组 a Child.Value
。
例子:
IEnumerable<Parent> parents = new List<Parent>()
{
new Parent()
{
Children = new List<Child>()
{
new Child() { Key = "key1", Value = "v1" },
new Child() { Key = "key1", Value = "v2" …
Run Code Online (Sandbox Code Playgroud) 尝试编写一些代码,首先将玩家的姓名与他的工资请求相匹配。我能够编写它,以便通过从“sortcell”类中调用它来获取给定团队中每个球员的名字,但我似乎不知道如何获得薪水,因为他们都被称为 .
from bs4 import BeautifulSoup
from urllib import urlopen
teams = ['http://espn.go.com/nba/team/roster/_/name/atl/atlanta-hawks']
for team in teams:
html = urlopen('' + team)
soup = BeautifulSoup(html.read(), 'lxml')
names = soup.findAll("td", {"class": "sortcell"})
salary = soup.findAll("td", {"class": "td"})
print(salary)
for i in range(1, 15):
name = names[i].get_text()
print(name)
Run Code Online (Sandbox Code Playgroud)
您可以在以“薪水”开头的代码中看到我的(失败的)尝试。关于如何只获得薪资级别有什么想法吗?谢谢!
预期行为:
Salary 变量应该返回给定球员的工资,但目前不返回任何内容。
我试图找到所有计算列而不是持久化.我看着这个INFROMATION_SCHEMA.Columns
以及sys.columns
.我ispersisted
在这些表格中找不到财产.我也试过COLUMNPROPERY()
没有运气.
谢谢
好吧,在我正在学习C#.net的教程中反复出现两个语句
DataRow dr;
这是什么意思.我认为它是一个DataRow
类的变量.
DataRow dr = new DataRow();
这是什么意思.我认为它是DataRow
Class的一个对象.
但我仍然带着歧义离开,在这种情况下,我将使用第一个案例或第二个案例.我现在很困惑.
我认为这个问题在Java论坛中已经重复了.但我没有得到它,因为我没有任何Java背景.所以在标记之前重复考虑一下.
对于单维数组,通常我会像下面的那样使用for循环,但我想不出一种不涉及大量循环的方法.
for (int i = 0; i < myArray.length; ++i)
{
myArray[i] = rnd.Next(1, 500);
}
Run Code Online (Sandbox Code Playgroud) 我想从C#中找出使用Roslyn的代码行.这是我试过的.
SyntaxTree tree = SyntaxTree.ParseText(@"int fun(int x){ int y = 0; x++; return x+1; return z;}
double funny(double x){ return x/2.13;}");
List<MethodDeclarationSyntax> methods = tree.GetRoot()
.DescendantNodes()
.Where(d => d.Kind == SyntaxKind.MethodDeclaration)
.Cast<MethodDeclarationSyntax>()
.ToList();
int lvc = methods[0].Body.Statements
.Count(x => x.Kind == SyntaxKind.LocalDeclarationStatement);
methods.Select(z => new { MethodName = z.Identifier.ValueText, LoC = z.Body.Statements.Count })
.OrderByDescending(x => x.LoC)
.ToList()
.ForEach(x => Console.WriteLine(x.MethodName + " " + x.LoC));
Run Code Online (Sandbox Code Playgroud)
我得到了以下输出
好玩的4
好笑1
但是我在函数中有两个return语句fun
.该代码无法在实际设置中编译.使用Roslyn时如何使这些错误消失?
这将返回所有非公共实例属性:
var instanceNonPublic = currentType.GetProperties (BindingFlags.Instance |
BindingFlags.NonPublic);
Run Code Online (Sandbox Code Playgroud)
但有没有办法确定哪个访问修饰符适用于每个属性?private
,internal
还是protected
?
下面的代码将我的对象和 byte[] 写入文件,sigBytes 是我的 byte[]
ObjectOutputStream outputOS = new ObjectOutputStream(new FileOutputStream(outputFile));
outputOS.writeInt(sigBytes.length);
outputOS.write(sigBytes);
outputOS.writeObject(text);
outputOS.close();
Run Code Online (Sandbox Code Playgroud)
然后当我执行下面的代码时,我得到一个 java.io.OptionalDataException
ObjectInputStream inputIS = new ObjectInputStream(new FileInputStream(INPUT));
int length = inputIS.readInt();
byte[] sigBytes = new byte[length];
inputIS.read(sigBytes, 0, length);
String text = (String) inputIS.readObject();
Run Code Online (Sandbox Code Playgroud)
在我得到的错误下面String text = (String) inputIS.readObject()
:
java.io.OptionalDataException at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) at encryption3.Encryption3.decrypt(Encryption3.java:34) at encryption3 .Encryption3.main(Encryption3.java:53)
编辑我不能让错误以最小的方式重复如下???我真的很累了..
public static void doThings() {
try {
File file = new File("C:/edges/input.ext");
String text = "Hello";
file.createNewFile();
byte[] sigBytes = (text).getBytes();
ObjectOutputStream …
Run Code Online (Sandbox Code Playgroud) 当我将int值转换为枚举时,如何跳过过时的值?我有以下最小工作示例:
using System;
public class Program
{
public static void Main()
{
int valueInt = 1;
var en = (TestObsolete)valueInt;
Console.WriteLine(en);
}
}
enum TestObsolete
{
Undefined,
[Obsolete]
ValueA = 1,
ValueB=1,
}
Run Code Online (Sandbox Code Playgroud)
我正在获得ValueA,但期望获得ValueB.特别是我对以下签名的泛型方法感兴趣:
public static T ParseEnumWithoutObsolete<T>(int val) where T: struct {
Run Code Online (Sandbox Code Playgroud)
我试着这样做:
T @enum;
var enumValues = Enum.GetValues(typeof(T)).Cast<T>();
var obsoleteValues = enumValues.Where(a => typeof(T).GetField(a.ToString()).CustomAttributes.Any(t => t is ObsoleteAttribute));
var activeValues = enumValues.Except(obsoleteValues);
Run Code Online (Sandbox Code Playgroud)
但坚持下一步.
所以,正如标题所说,我有一个对象是propertyInfo.我想得的是那个属性,但我似乎无法找到办法.
首先我有这个方法:
public object GetPropertyInfo(object parent, String propertyName)
{
object propInf = null;
PropertyInfo[] propList = parent.GetType().GetProperties();
foreach (PropertyInfo pInf in propList)
{
if (propertyName == pInf.Name)
{
propInf = pInf;
}
}
return propInf;
}
Run Code Online (Sandbox Code Playgroud)
并且它运行得相当好,假设提供的"父"对象是常规类而不是反射类型.
但是返回的一些属性包含我想要访问的属性.在这些情况下,我需要将PropertyInfo反馈到此方法中,并为该属性获取另一个PropertyInfo.但是,如果我将PropertyInfo对象放入此方法,它只返回PropertyInfo的属性列表(如您所想).
我已经阅读了它,似乎我可能想要的是PropertyInfo类的'GetValue'方法.我有点不确定它,因为我似乎无法解析方法所需的内容.
即便如此,我也是这样写的:
public object GetPropertyInfo(object parent, String propertyName)
{
object propInf = null;
object o = null;
if (parent is PropertyInfo)
{
PropertyInfo p = (parent as PropertyInfo);
o = p.GetValue(p, null);
}
else
o = parent;
PropertyInfo[] propList = o.GetType().GetProperties();
foreach …
Run Code Online (Sandbox Code Playgroud) 我想要这样的字典列表字典:
Dictionary <string, List<Dictionary<string,string>> field;
Run Code Online (Sandbox Code Playgroud)
但是visual studio给我发错误:
错误CS0305使用泛型类型'Dictionary'需要2
如何解决这个错误(或者更好地解决我的问题)?
我有一个简单的类MyClass,它具有在DLL中定义的方法,现在我在另一个代码中引用此DLL,并尝试初始化这样的对象Myclass obj = new MyClass()
。我不确定为什么编译器会抛出异常NullReferenceException
。请协助
DLL:
public class MyClass
{
public MyClass(){}
public void method()
{
//some code
}
}
Run Code Online (Sandbox Code Playgroud)
其他代码:
void main()
{
MyClass obj=new MyClass(); //This is where I get NullReferenceException error
}
Run Code Online (Sandbox Code Playgroud)