我在C#中有一个字符串列表,并希望使用LINQ创建列表中字符串中的唯一字符列表.
到目前为止,我已经找到了如何将List转换为List,但我无法弄清楚如何让LINQ更进一步.
我到目前为止的内容如下:
List<string> dictionary = new List<string>(someArray);
List<string[]> uniqueCharacters = dictionary.ConvertAll(s => s.Split());
Run Code Online (Sandbox Code Playgroud)
我相信我需要一些东西
List<char> uniqueCharacters =
dictionary.ConvertAll(s => s.Split()).SelectAll(t, i=>t[i][0]);
Run Code Online (Sandbox Code Playgroud) 我有以下功能(删除了try-catch):
Friend Shared Function ConvertOrDefault(Of T As {Structure, IConvertible})(convertFrom As Object, ignoreCase As Boolean) As T
Dim retVal As T
If Not GetType(T).IsEnum Then
Throw New ArgumentException("Type must be enum")
ElseIf convertFrom Is Nothing OrElse Not TypeOf convertFrom Is String Then
Return New T
ElseIf [Enum].TryParse(convertFrom.ToString(), ignoreCase, retVal) Then
Return retVal
Else
Return New T
End If
End Function
Run Code Online (Sandbox Code Playgroud)
将给定类型转换为枚举(因此约束),如果它是1.
那很好,但是我有另一个方法(下面简化),它执行更一般的转换,如果传入的类型是枚举,我希望它使用该方法:
Friend Shared Function Convert(Of T)(value as Object) As T
If GetType(T).IsEnum Then
Return Enums.ConvertOrDefault(Of T)(value, True)
Else : return …Run Code Online (Sandbox Code Playgroud) 假设我有一个类库项目(Library),其中包含一个类:
Public Class SomeClass(Of TTypeA, TTypeB)
Run Code Online (Sandbox Code Playgroud)
然后,在另一个UIProject不同解决方案的项目中,我定义了一个派生自(继承)SomeClass的类:
Imports Library
Public Class SomeDerivedClass
Inherits SomeClass(Of String, Boolean)
Run Code Online (Sandbox Code Playgroud)
当我添加类libary引用时,我已将Library.pdb和Library.xml与Library.dll(在同一文件夹中)一起包含在内UIProject.
现在,在UIProject我创建一个ClassDiagram(ClassDiagram1.cd),并在SomeClass类中添加.到现在为止还挺好.
下一步是SomeClass在图中右键单击,然后从下拉列表中选择"显示基类".此时,我收到错误:
错误HRESULT E_FAIL已从调用COM组件返回.
如果我这样做但是对于非泛型版本SomeClass,则SomeClass包含在类图中,没问题.
ActivityLog.xml中不显示任何错误; 也不在Windows事件查看器中.
这是Visual Studio中的错误(在这种情况下我会报告它); 或者我做错了什么(如果有的话还有其他任何错误日志或痕迹我可以做进一步缩小问题)?
所以,如果我有一个字符数组
char[] chars = new char[]{'f','a','d','e','c','b'};
Run Code Online (Sandbox Code Playgroud)
和另一个整数数组,说明排序顺序是什么:
int[] sortOrder = new int[]{5,1,4,5,3,2};
Run Code Online (Sandbox Code Playgroud)
我怎样才能对chars数组中的数据进行排序,使用sortOrder数组中的值来确定顺序?在上面的示例中,排序的数组看起来像
{'a','b','c','d','e','f'}
Run Code Online (Sandbox Code Playgroud)
('d'移动到位置4,'a'移动到位置1,等等.重复5,顺序无关紧要.)
我知道我可以通过创建第三个数组来实现,但理想情况下我想使用LinQ(.Sort)方法或类似的方法来实现它,因为sortOrder数组中可能存在重复的值.
我想我实际上想要对sortOrder数组进行排序(使用sortOrder.Sort()很容易),但是然后让它以不同的方式对具有完全相同变化的字符数组进行排序?
我有一个程序,可以搜索html文件并找到href标签,获取内部的字符串(链接),并将其转换为文件位置.
当href标签使用相对链接时会出现问题,例如:
<a href="../../../images/arrow.gif"/>
在这种情况下,我的程序返回:
\\server\webroot\folder\foo\bar\mew\..\..\..\images\arrow.gif
Run Code Online (Sandbox Code Playgroud)
例如(因为它不以"http"开头,它将文件的路径追加到开头).
显然,这可以简化为:
\\server\webroot\folder\images\arrow.gif
Run Code Online (Sandbox Code Playgroud)
是否存在可以进行这种简化的对象,或者我是否需要进行一些字符串解析 - 如果是这样,最好的方法是什么?
据我了解,在 WPF 中,控件使用的字体大小由父控件确定,除非定义了覆盖。
鉴于我没有在应用程序中的任何位置定义字体大小,我假设默认字体大小是为顶级窗口配置的。
该值是否由应用程序运行所在的系统决定(如果是,则在哪里?);或者它是由某些内置的 WPF 默认值决定的(如果是的话,它是什么?)
我有一个需要连接到两个数据库的Java EE应用程序.一个是内存数据库(H2),一个是常规Oracle数据库.
我可以在Websphere Application Server中建立与Oracle数据库的连接,在ibm-web-bnd.xml中放置一个引用,然后使用以下代码访问它:
DataSource dataSource = null;
try
{
InitialContext ctx = new InitialContext();
// comp/env is for component-environment bindings, such as web application bindings
// this allows us to change the name later in the binding (in the ibm-web-bnd.xml file), instead of here in the code.
dataSource = (DataSource) ctx.lookup("java:comp/env/jdbc/refDB");
}
catch (NamingException e)
{
e.printStackTrace();
}
return dataSource.getConnection();
Run Code Online (Sandbox Code Playgroud)
这很好 - InitialContext返回我需要的WAS上下文,可以找到数据源,一切都很好.
但是,我还希望能够从同一个应用程序访问H2数据库.按照我在复数视频上找到的教程,似乎这样做的方法是导入tomcat jar,然后即时创建上下文:
System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.naming.java.javaURLContextFactory");
System.setProperty(Context.URL_PKG_PREFIXES, "org.apache.naming");
InitialContext ctx = new InitialContext();
//"java:comp/env/jdbc/CacheDb" is the context …Run Code Online (Sandbox Code Playgroud) 如何替换下面的字符串.
String test = "This is my Test's cases";
Run Code Online (Sandbox Code Playgroud)
现在我用空格替换"'"就像这样"这是我的测试案例"我尝试过:
1) replace("'","")
2) replaceAll("'","")
3) replace("\'","")
Run Code Online (Sandbox Code Playgroud)
...但我没有得到任何必要的结果.
测试代码:
String test = "The First American's style";
System.out.println("old text::"+test);
test = test.replaceAll("'","\\'");
System.out.println("new text::"+test);
Run Code Online (Sandbox Code Playgroud)