내가 지금 더 나은 해답을 제공 할 수는. 여기는 기능적인 XML 파싱 및 조인 콘솔 앱으로, 당신이 찾고있는 것을 보여줍니다 (제 생각 엔). xml 문자열 대신 xml 파일을 구문 분석하려면 표시된 Parse 메서드 대신 XDocument
Load 메서드를 사용합니다. 행운을 빌어 요는, 세션 변수에 대한
XDocument docA = XDocument.Parse(
@"<Devanagri_to_itrans>
<mapping>
<character>अ</character>
<itrans>a</itrans>
</mapping>
</Devanagri_to_itrans>");
XDocument docB = XDocument.Parse(
@"<Gujrathi_to_itrans>
<mapping>
<character>અ</character>
<itrans>a</itrans>
</mapping>
</Gujrathi_to_itrans>");
var devanagriKeys = (from d in docA.Descendants("mapping")
select new {
Key = d.Descendants("itrans").FirstOrDefault().Value,
Character = d.Descendants("character").FirstOrDefault().Value
}).ToArray();
var gujrathiKeys = (from g in docB.Descendants("mapping")
select new {
Key = g.Descendants("itrans").FirstOrDefault().Value,
Character = g.Descendants("character").FirstOrDefault().Value
}).ToArray();
var crossReference = (from d in devanagriKeys
join g in gujrathiKeys on d.Key equals g.Key
select new {
d.Key,
Devanagri = d.Character,
Gujrathi = g.Character
}).ToList();
Console.WriteLine("Enter a key character to translate:");
string searchKey = Console.ReadLine();
var translation = crossReference.Where(cr => cr.Key == searchKey).FirstOrDefault();
if (translation == null)
Console.WriteLine("No such key in the cross reference.");
else
Console.WriteLine("{0} is {1} in Devanagri and {2} in Gujrathi",
translation.Key, translation.Devanagri, translation.Gujrathi);
Console.ReadKey(true);
PER 요청은 :
익명 유형은 메소드 내에서 사용하기위한 것입니다. 다른 곳에서 사용하기 위해 목록을 Session 변수에 배치하려면 원하는 3 가지 속성을 포함하는 실제 클래스를 만들고 위의 코드 행을 아래에 매우 일치하도록 변경하십시오. (I 선택한 클래스 이름은 CrossReferenceTranslation
이었다.)
Session["CrossReference"] = (from d in devanagriKeys
join g in gujrathiKeys on d.Key equals g.Key
select new CrossReferenceTranslation() {
d.Key,
Devanagri = d.Character,
Gujrathi = g.Character
}).ToList();
... 다음, 당신이 변수로 세션 객체의 목록을 얻으려면이 작업을 수행 할 수있는 시간에 다른 시점에서. 변수가 세션이 시간 초과 될 때마다 어떤 일이 일어날 것, 널 (null)이 될 수 있다는 가정 ... 내가 수를 표시 할 해달라고
List<CrossReferenceTranslation>() crossReference = Session["CrossReference"] ??
new List<CrossReferenceTranslation>();
감사합니다 fr을 코드 ... 친절하게 도와주세요 1 가지 더 plzz ...이 세션 변수에 목록에 저장하는 방법 ??? 그래서 내가 나중에 쉽게 액세스 할 수있는 파일을 ASP에서 파일 ... TEMP가 배열이라고 가정합니다. 배열을 세션에 넣으려면 : Session [ "array"] = TEMP; 그리고 다른 페이지에서 배열 검색하기 : ArrayList temp = (System.Collections.ArrayList) Session [ "array"]; – vin
먼저 ArrayList가 아닌 List을 사용하십시오. ArrayList는 권투 때문에 .net 2.0부터 열등했습니다. 번역기를 세션 변수에 배치하는 코드를 추가했지만 Session []보다 더 영구적이고 확장 가능한 솔루션을 고려해야합니다. –
Tahbaza